[РЕШЕНО] numpy повернуть 3D модель

ЫЫЫ. круто тупанул, не дописал .matrix33
нужно было так изначально
points = np.array(points)

matrix = Quaternion.from_y_rotation(np.pi / 2.0).matrix33

points = points.dot(matrix)
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
кстати, кому интересно, для максимальной скорости, было принято решение использовать полностью для отрисовки OpenGL и только когда нужно вычислять Quaternion на основе текущей позиции, ориентации, масштаба и dot-ить вершины, для получения мировых координат.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
В общем случае, кватернионы повсеместно применяются для вычисления вращений, в том числе и в OpenGL.
Если кратко, то кватернион - это комплексное четырехмерное число, представляющее поворот на определенный угол вокруг направленного вектора. Композиция последовательных поворотов и вращений вычисляется произведением представляющих эти повороты кватернионов, что значительно сокращает количество вычислительных операций по сравнению с матричными вычислениями.
И вот уже когда все повороты сделаны, можно пересчитать результирующие координаты объекта, применив к исходной модели конечный кватернион.
То есть, этот результирующий кватернион преобразуем в трехмерную матрицу поворота и умножаем на нее массив с координатами исходной модели.
Вроде, как-то так это работает.
 
Зарегистрироваться или войдите чтобы оставить сообщение.