Войти
ПрограммированиеФорумФизика

Помогите написать физический движок :) (12 стр)

Страницы: 111 12 13 1436 Следующая »
#165
3:43, 2 июня 2018

Suslik
> найти ось минимального проникновения (minimal translation distance). эта ось
> будет нормалью для всех контактов.
Помогло, но не все оказалось так просто)
Нужно еще с направлением нормали контакта (имеется в виду положительное или отрицательное).

Вот что вышло.
Масса брусков 1500, масса машинки тоже.


#166
10:45, 3 июня 2018

Suslik
> сделать честное трение
кхе кхе кхе

#167
(Правка: 21:12) 20:58, 5 июня 2018

Suslik, Вы в своей статье упомянули про ассиметричный тензор инерции. Эта штука мне не ясна. Допустим, я нашел моменты инерции по осям тела. А вот как из них получить момент для джоинта мне не ясно.
Поможете?

#168
(Правка: 22:10) 22:10, 5 июня 2018


И еще один вопрос. А можно как нибудь вытянуть плоскость пересечения до нахождения точек пересечения?
По идее нормаль плоскости  это и есть
Suslik
> ось минимального проникновения
А вот как вытащить точку на этой плоскости?

#169
(Правка: 2:38) 2:37, 6 июня 2018

vindast
по тензорному исчислению советую что-нибудь почитать за пределами моей статьи. можно начать со статьи по тензору инерции на википедии.

vindast
> А вот как вытащить точку на этой плоскости?
одной точки мало. нужны все точки(они образуют площадку), нормаль которых находится достаточно близко к оси. я для этого использую support mapping. вообще это — область, где единственно правильного решения нет и все делают по-разному.

#170
2:44, 6 июня 2018

Suslik, Вы не поняли идею, я хочу найти сечение каждого объекта одной плоскостью, что дешевле чем сейчас, а сейчас это 2 * 6 плоскостей * 12 прямых.
Эта точка нужна только для того что бы задать плоскость по нормали и точке.

#171
14:19, 10 июня 2018

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

Что я делаю не так?

#172
14:24, 10 июня 2018

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

#173
(Правка: 14:29) 14:29, 10 июня 2018

Буду думать, эх.
Есть еще проблема. Что делать с тем, что проекция у треугольника на его нормаль 0?

#174
14:34, 10 июня 2018

vindast
> Что делать с тем, что проекция у треугольника на его нормаль 0?
тебя это вообще не должно волновать. для поиска одномерного пересечения(проекций) используются только функции min и max.

#175
14:35, 10 июня 2018

Я уже про глубину проникновения для псевдоскоростей.

#176
14:35, 10 июня 2018

Там получается 0 в некоторых случаях.

#177
(Правка: 14:37) 14:36, 10 июня 2018

vindast
аналогично, делений там нет. представь себе, что у тебя два одномерных отрезка : [cht][a_0, a_1], [b_0, b_1][/cht]. для того, чтобы найти длину их пересечения, тебя не должно интересовать, вырождены ли они.

#178
14:37, 10 июня 2018

Тела начинают проваливаться друг в друга при минимальной длине проекции равной нулю.

#179
14:38, 10 июня 2018

В том то и дело, что их общая длина может быть 0.

Страницы: 111 12 13 1436 Следующая »
ПрограммированиеФорумФизика