![]() |
Поворот матрицы, локальная система координат объекта
Вобщем есть 3D пространство, в нем объект с координатами X,Y,Z повёрнутый на углы Xa,Ya,Za все данные известны. Теперь собственно сам вопрос к уважаемым знатокам (:
Необходимо переместить этот объект на определённое(также известное) расстояние относительно направления этого объекта(т.е. в его локальной СК) Вопрос, как же это сделать? Помню когда кодил на чистом GL(давно было дело, просто для общего развития взялся) была там специальная команда для записи матрицы и ещё одна для её востановления, а также крутить её можно было по любому - было не привычно но довольно удобно. Но как вывести координаты, зная эти данные? Возможно вопрос уже всплывал, тогда плиз тыкните носом, изучу (: Сам кодю на блице, там проблем с этим нет - MoveEntity спасёт лентяя (: Но нужно найти решение используя GML и подключенную библиотеку Ultimate3D. Вобщем надеюсь на адекватные и полезные ответы, сам в подобной объемной математике не очень силён :( |
Ответ: Поворот матрицы, локальная система координат объекта
Если в той штуке, в которой ты кодишь, перемещения задаются в глобальных координатах, то надо сделать следующее:
1) построить вектор, задающий перемещение вдоль нужных тебе осей на нужное расстояние, причем координаты будут глобальными 2) повернуть вектор на известные углы Xa, Ya, Za 3) прибавить координаты полученного вектора к текущей позиции объекта Поворот вектора осуществляется умножением его на матрицу вращения. Если что не понятно, тут есть ответы на все вопросы: http://vamos.sourceforge.net/matrixfaq.htm |
Часовой пояс GMT +4, время: 10:48. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot