Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / sat и круги (2 стр)

sat и круги (2 стр)

Поделиться

Страницы: 1 2

SuslikМодераторwww11 авг. 201711:04#15
Dimich
ну так, например,
[cht]\vec d = \alpha \vec {d_1} + \beta \vec{d_2}[/cht] — вектор суммарного смещения
[cht]\vec {d_1},\ \vec {d_1}[/cht] — mtd для двух статических коллижнов. далее хочется найти [cht]\alpha,\ \beta[/cht], чтобы оба условия выполнились. домножаем оба уравнения на [cht]\vec {d_1},\ \vec {d_2}[/cht], получается система:
[cht]\vec d \cdot \vec{d_1} = \alpha \vec{d_1} \cdot \vec{d_1} + \beta \vec{d_2} \cdot \vec{d_1}[/cht]
[cht]\vec d \cdot \vec{d_2} = \alpha \vec{d_2} \cdot \vec{d_1} + \beta \vec{d_2} \cdot \vec{d_2}[/cht]
то есть
Изображение
дальше подставляешь альфу с бетой в первое уравнение. но, ещё раз повторяю, это спасёт только в этом частном случае двух статических контактов. в общем случае вращающихся или движущихся объектов или в случае более чем трёх контактов не поможет никак. даже не поможет, если решать нормальные импульсы, а не просто тела расталкивать.

Правка: 11 авг. 2017 11:40

DimichПостоялецwww11 авг. 201711:33#16
Suslik
Я так понял, векторами, которые выдаёт сат, отделаться нельзя. Ибо там нормали не касания, а вектор оси минимального проникновения. Или я совсем туплю.

Правка: 11 авг. 2017 11:33

SuslikМодераторwww11 авг. 201711:42#17
Dimich
короче, давай, тут уже думай сам. я всё рассказал, что мог, по второму кругу я не осилю. рекомендую сделать всё-таки режим с отображением отдельных итераций расталкивания, пошагово и с отображением mtd, тогда все вопросы отпадут.
DimichПостоялецwww11 авг. 201711:44#18
Suslik
> рекомендую сделать всё-таки режим с отображением отдельных итераций
> расталкивания, пошагово и с отображением mtd, тогда все вопросы отпадут.
ок, сделаю, уверен, что ничего не пойму, но с этим уже приду на консультацию)

Страницы: 1 2

/ Форум / Программирование игр / Физика

2001—2017 © GameDev.ru — Разработка игр