Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Движение, столкновение обьектов 
:(
    Опции темы
HellanD
Дата 3.5.2007, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



Знаю что есть похожие темы но в них ответа увы нен нашел....
Задача стоит так:
Нужно нарисовать шар радиусом 2...Который бы двигался в поле 300*300, А попадая на стенку упруго отскакивал бы...
Подскажите какую методику применить для реализации столкновений...




--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
SparF
Дата 3.5.2007, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 14.9.2006
Где: Санкт-Петербург/М осква

Репутация: нет
Всего: 18



задача поставлена несколько некорректно)
если это шар, то он не может двигаться в двумерном пространстве:
Цитата(HellanD @  3.5.2007,  08:50 Найти цитируемый пост)
Который бы двигался в поле 300*300

тогда уж в трехмерном)
в простейшем случае (2d) необходимо определить факт пересечения окружности с прямой (делать это перед каждым смещением окружности на пиксел вперед)
и если это пересечение есть, значит нужно изменить направление движения на противоположное (в смысле - "отскочить"), можно учитывая при этом угол отражения/отскока)))


--------------------
Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux!
PM MAIL ICQ   Вверх
HellanD
Дата 3.5.2007, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



Да на счет шара я погарячился.... Вот и вправду при столкновении с границами я так и делал.... Но а вот в общем случае если я еще добвлю другие кружки которык будут тоже летать (в многопоточном режиме)... Как мне реализовать упругое столкновение между ними?


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
SparF
Дата 3.5.2007, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 14.9.2006
Где: Санкт-Петербург/М осква

Репутация: нет
Всего: 18



Цитата(HellanD @  3.5.2007,  09:18 Найти цитируемый пост)
Как мне реализовать упругое столкновение между ними? 

аналогично)
только пересекаться будут не прямая и окружность, а еще и окружность-окружность
а окружности двигаться по очереди(1-2-3-4-пауза-1-2-3-4-пауза-1-2.....), чтобы при расчете движения одного все остальные-стояли, для глаза это не будет заметно



--------------------
Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux!
PM MAIL ICQ   Вверх
Promitheus
Дата 3.5.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 28.3.2007

Репутация: нет
Всего: 1



В Microsoft DirectX SDK 9.0c за август 2006 года (может и в других есть, но я только эту сдк смотрел) есть как раз такой пример. Там сделан небольшой движок и по нажатию на левую кнопку мыши выпадает шарик и двигается по физическим законам, при столкновении между собой они также упруго отталкиваются. Всё сделано достаточно реалистично и впринципе не очень сложно закон движения по x,y,z на уровне школьной физики. 

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

DX SDK работает на 2003 и 2005 студии, весит порядка 600-700 метров. Лежит на сайте Майкрософта.

 
PM MAIL ICQ   Вверх
likehood
Дата 3.5.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: 1
Всего: 24



Отскок шаров: в момент столкновения проводим линию через центры шаров (она будет осью x); ось y - ортогональна x (направление не важно). Находим проекции вектора скорости для обоих шаров на эти оси. Так вот, проекции скорости на ось y  не изменяются, а проекции на ось x меняются местами (если шары одной массы).
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.