Как определить нормаль столкновения при столкновении ограничивающего прямоугольника по оси - PullRequest
0 голосов
/ 29 мая 2011

У меня есть 3d движущаяся коробка и стационарная коробка. Я могу обнаружить столкновения хорошо, но теперь я хотел бы сдвинуть движущуюся коробку к неподвижной коробке в качестве реакции на столкновение. Для этого мне нужна норма лица, которая сталкивается с движущейся коробкой. Кто-нибудь знает, как я это выяснил? Не похоже, что тест столкновения дает мне эту информацию. Любая помощь приветствуется.

1 Ответ

1 голос
/ 09 июня 2011

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

Пусть a, b и c будут позиционными векторами 3 из 4 точек вокруг грани:

//edge a<->b<br> Vector3f ab = b-a;</p> <p>//edge b<->c<br> Vector3f bc = c-b;</p> <p>//normal of the face<br> Vector3f normal = Vector3.cross_product(ab,bc);

Если вы не знаете, каково перекрестное произведение между двумя трехмерными векторами, вы можете посмотреть здесь: http://en.wikipedia.org/wiki/Cross_product

...