2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 столкновение тел в 3D
Сообщение08.11.2014, 19:05 


24/08/13
38
доброе время суток уважаемые физики.

Создаю физический движок с нуля, столкнулся с проблемой: определить вектора скоростей и вектора вращения после столкновения двух тел (для примера шаров) в 3-х мерном пространстве, с разным радиусом, массой и шершавостью(для силы трения) с известной точкой столкновения и временем столкновения, как удобней и с известными начальными векторами скоростей и векторами вращения.

поиск по просторам интернета желаемых результатов не дал, хотя быть может не правильно искал, помогите формулами, хотя бы базовыми, объединю их сам, ну или полностью помогите, заранее благодарен

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение08.11.2014, 19:23 


01/12/11

1047
Посмотрите Universal Mechanism Junior, может быть удастся приспособить.

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение08.11.2014, 19:28 


24/08/13
38
Skeptic в сообщении #928352 писал(а):
Посмотрите Universal Mechanism Junior, может быть удастся приспособить.

Нет, спасибо, я не хочу использовать готовый продукт, нужна лишь помощь с формулами, продукт я разработаю свой, но всё равно спасибо

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение08.11.2014, 19:30 
Аватара пользователя


31/12/13
148
reqyz
Не проще ли почитать исходники уже существующих движков?
Или почитать какую-нибудь книгу по дизайну движков:
3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics
Essential Mathematics for Games and Interactive Applications: A Programmer's Guide

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение08.11.2014, 19:37 


24/08/13
38
electric_retard в сообщении #928356 писал(а):
reqyz
Не проще ли почитать исходники уже существующих движков?
Или почитать какую-нибудь книгу по дизайну движков, например.

мне нужно решить лишь эту конкретную задачу, остальной функционал уже практически готов, не во всех движках столкновения реализуются именно физическим способам, по моему вопросу можете помочь?

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение08.11.2014, 19:40 
Аватара пользователя


31/12/13
148
reqyz
Вторая книга, раздел 13.5.

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение08.11.2014, 20:02 
Заслуженный участник
Аватара пользователя


30/01/06
72407
В механике это называется "теория удара", есть в некоторых (не всех) книгах по теоретической механике. Шероховатость не всегда спасает, бывают нужны и другие параметры столкновения.

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение08.11.2014, 21:20 


24/08/13
38
electric_retard
книга на английском, у меня английский на техническом уровне,
Munin
по теории удара гуглил, но не нашел ничего удовлетворяющего условиям, все примеры либо рассчитаны на абсолютно упругий удар, либо на удар лоб в лоб, в общем то, что помочь мне не смогло

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение09.11.2014, 06:17 


24/08/13
38
хотя бы абсолютно упругое столкновение шаров разной массы и радиуса можете подсказать, хоть для двухмерного случая, я сам дальше разберусь

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение09.11.2014, 12:01 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Абсолютно упругое-то как раз подробно рассматривается в учебниках. Только надо не "гуглить", а читать учебники, в данном случае - по теормеханике. Например,
Маркеев. Теоретическая механика.
глава 12.

Ещё надо позвать Oleg Zubelevich, он может больше литературы назвать.

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение09.11.2014, 15:13 
Заслуженный участник


09/05/12
25179
reqyz в сообщении #928342 писал(а):
Создаю физический движок с нуля, столкнулся с проблемой: определить вектора скоростей и вектора вращения после столкновения двух тел (для примера шаров) в 3-х мерном пространстве, с разным радиусом, массой и шершавостью(для силы трения) с известной точкой столкновения и временем столкновения, как удобней и с известными начальными векторами скоростей и векторами вращения.

reqyz в сообщении #928359 писал(а):
мне нужно решить лишь эту конкретную задачу, остальной функционал уже практически готов,

reqyz в сообщении #928426 писал(а):
по теории удара гуглил, но не нашел ничего удовлетворяющего условиям, все примеры либо рассчитаны на абсолютно упругий удар, либо на удар лоб в лоб, в общем то, что помочь мне не смогло

reqyz в сообщении #928591 писал(а):
хотя бы абсолютно упругое столкновение шаров разной массы и радиуса можете подсказать, хоть для двухмерного случая, я сам дальше разберусь

Судя по этому сборнику цитат, Вы не понимаете одного существенного обстоятельства: то, что Вы хотите сделать - весьма сложная и трудоемкая даже для специалиста задача, во многих частных случаях вообще не решенная. Поэтому:
1) Надеяться, что тут на форуме или в какой-то книге удастся найти несколько формул, которые надо будет вставить в программу, не стоит - в самом лучшем случае последовательное описание того, что считать в той или иной ситуации (если его кто-нибудь составит), будет представлять собой десяток толстых книжек.
2) "Физическая" часть этой работы на много порядков сложнее программистской, поэтому попытки написания идеального физического движка своими силами и с нуля у Вас попросту займут всю оставшуюся жизнь.

Следовательно, надо поставить задачу более четко.

Если это просто учебная задача, то надо ограничиться простыми случаями, механика которых Вам известна, и реализовать их. Если Вам требуется написать программный продукт, реализующий какой-то соответствующий функционал, наиболее разумный вариант действий уже подсказали - взять уже существующий движок и, возможно, его модифицировать под свои нужды. Если Вам требуется разобраться в том, как подобные задачи в общих чертах решаются, то ответ уже тоже есть - взять соответствующие книжки и примеры кода и читать. Если задача состоит в том, чтобы написать что-то, лучшее, чем все существующие движки, то надо осознать, что это проект на много лет и много человек (и не только программистов), поэтому начинать надо с поиска финансирования и т.п.

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение09.11.2014, 17:46 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Pphantom в сообщении #928711 писал(а):
2) "Физическая" часть этой работы на много порядков сложнее программистской, поэтому попытки написания идеального физического движка своими силами и с нуля у Вас попросту займут всю оставшуюся жизнь.

Ну, не так всё плохо. Можно проучиться несколько лет, освоить основы физики, и после этого сделать нечто достаточно простое и в то же время реалистичное.

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение09.11.2014, 18:01 
Заслуженный участник


09/05/12
25179
Munin в сообщении #928801 писал(а):
Ну, не так всё плохо. Можно проучиться несколько лет, освоить основы физики, и после этого сделать нечто достаточно простое и в то же время реалистичное.
Именно реалистичное. Но не идеально правильное во всех без исключения случаях.

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение09.11.2014, 18:24 
Заслуженный участник
Аватара пользователя


30/01/06
72407
А такой цели, кажется, и не звучало.

 Профиль  
                  
 
 Re: столкновение тел в 3D
Сообщение09.11.2014, 18:47 
Заслуженный участник


09/05/12
25179
Munin в сообщении #928827 писал(а):
А такой цели, кажется, и не звучало.
Так ведь и никакой конкретной цели пока не звучало. :D Имеющаяся постановка - самая общая.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

Модераторы: photon, whiterussian, profrotter, Jnrty, Aer, Парджеттер, Eule_A, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group