#vector #maya #calculation
#вектор #maya #вычисление
Вопрос:
Я пытаюсь вычислить ограничение цели в Maya, используя только математические узлы. У меня в основном есть два объекта в трехмерном пространстве, A amp; B. ‘две матрицы преобразования’
И мне нужно вычислить угол Эйлера, с которым я могу повернуть объект A, чтобы он всегда был нацелен на объект B. Третий вектор будет равен (0,1,0) мировому пространству вверх.
Какую правильную формулу использовать для получения угла Эйлера?
Я пробовал разные вещи, но я не получаю правильного результата.
Комментарии:
1. У вас есть вектор, указывающий от одного объекта к другому, тогда у вас есть вектор вверх. С помощью этих векторов вы можете вычислить нормаль (направленную вверх) и бинормаль, перпендикуляр между вектором направления и нормалью. С помощью этих трех векторов вы можете напрямую заполнить матрицу преобразования без необходимости использования углов Эйлера.
2. Спасибо, Хагги, как бы я тогда поступил на практике? Есть ли какие-либо хорошие ссылки на их вычисление?
3. Получите вектор направления с помощью pointB — pointA, нормализуйте его, назовите его dir, затем вычислите перекрестное произведение, чтобы получить перпендикулярный вектор с вашим up: tmpVec = cross(dir, up) затем снова создайте перекрестное произведение с новым вектором normal = cross(tmpVec, dir) и binormal = cross(реж, нормальный). С помощью этих векторов вы можете заполнить матрицу вращения (не совсем уверен, какой вектор принадлежит какой строке, поэтому вам придется его искать).
4. Спасибо, Хагги, я попытался вычислить их, но все они, похоже, заканчиваются одним и тем же результатом. Я не уверен, что это правильный путь.
5. Может быть, это могло бы помочь, если бы вы показали часть кода, который вы пробовали, чтобы мы могли посмотреть, можем ли мы помочь. Поскольку это сообщество разработчиков, вероятность того, что кто-то сможет улучшить ваш подход, довольно высока.