Повернуть к лицу вектор в Гудини с питоном

Я пытаюсь сделать геометрию в Гудини лицом к тому же направлению, что и нормаль на линии. Я получаю нормаль как вектор с величиной 1, а затем использую формулу angle = arccos((x dot y)/(magnitude x * magnitude y). Чтобы получить угол поворота объекта, а затем умножить на 180, чтобы преобразовать его до степени. по какой-то причине это не дает последовательного результата.

Я делаю что-то явно не так с моей математикой? Я новичок в Гудини, поэтому я не уверен, что могу упустить что-то в окружающей среде, что усложнит это.

Вот код Python, который я использую.

#normalize and store as vector3
currentNormal = hou.Vector3(currentNormal).normalized()
previousNormal = hou.Vector3(previousNormal).normalized()

#get dot product and magnitudes
dotProd = numpy.dot(previousNormal, currentNormal)
previousMagnitude = numpy.sqrt((previousNormal[0]**2) + (previousNormal[1]**2) + (previousNormal[2]**2))
currentMagnitude = numpy.sqrt((currentNormal[0]**2) + (currentNormal[1]**2) + (currentNormal[2]**2))

nextLocationRotate = numpy.arccos(dotProd/(previousMagnitude * currentMagnitude))

nextLocationRotate = [0.0, nextLocationRotate*180, 0.0]

Я пытаюсь получить вращение вокруг оси Y.

0 ответов

Другие вопросы по тегам