У меня есть 3d движущийся ящик и стационарный ящик. Я могу обнаруживать столкновения нормально, но теперь я хотел бы сдвинуть движущийся ящик по неподвижному ящику в качестве реакции на столкновение. Для этого мне нужна нормаль лица, которое сталкивается с движущимся прямоугольником. Кто-нибудь знает, как я в этом разобрался? Не похоже, что тест на столкновение дает мне эту информацию. Любая помощь приветствуется.
Как определить нормаль столкновения при столкновении ограничивающего прямоугольника, выровненного по оси?
comment
Какие библиотеки разработчиков игр вы используете? Почему вы не можете получить доступ к объектам коробки и их атрибутам? Требуется дополнительная информация.
- person zdav   schedule 29.05.2011
comment
На самом деле я не использую никаких библиотек. Просто opengl. Все остальное в значительной степени мое.
- person Xavier   schedule 29.05.2011
Ответы (1)
Нормаль к грани равна перекрестному произведению между векторами двух соединительных ребер всех ребер, которые примыкают к грани.
Пусть a, b и c - векторы положения 3 из 4 точек на лице:
//edge a<->b
Vector3f ab = b-a;
//edge b<->c
Vector3f bc = c-b;
//normal of the face
Vector3f normal = Vector3.cross_product(ab,bc);
Если вы не знаете, каково перекрестное произведение двух трехмерных векторов, вы можете посмотреть здесь: http://en.wikipedia.org/wiki/Cross_product
person
TravisG
schedule
08.06.2011