Как повернуть объект вокруг оси X

Я пытаюсь повернуть некоторые 3d-объекты вокруг оси x (мне не нужно поворачивать их по центру, поэтому нет необходимости переводить сначала в 0,0,0, а затем обратно в исходное положение). Я только что написал быстрый скрипт php, чтобы проверить его на файле obj. Я проверил страницу Википедии для поворота матрицы и был уверен, что мой код будет работать …

CreateXrotationMatrix принимает угол и создает необходимую матрицу вращения из

      [1 0    0    ]
Rx(α)=[0 cosα -sinα]
[0 sinα cosα ]

function CreateXrotationMatrix($alpha)
{
$matrix = Array();
$matrix[0] = 1;
$matrix[1] = 0;
$matrix[2] = 0;
$matrix[3] = 0;
$matrix[4] = cos($alpha);
$matrix[5] = -sin($alpha);
$matrix[6] = 0;
$matrix[7] = sin($alpha);
$matrix[8] = cos($alpha);

return $matrix;
}

Затем MultiplyMatrices умножает матрицу 3×3 на заданную точку

function MultiplyMatrices($rotationMatrix, $point)
{
$returnMatrix = Array();
$returnMatrix[0] = $rotationMatrix[0]*$point[0] + $rotationMatrix[1]*$point[1] + $rotationMatrix[2]*$point[2];
$returnMatrix[1] = $rotationMatrix[3]*$point[0] + $rotationMatrix[4]*$point[1] + $rotationMatrix[4]*$point[2];
$returnMatrix[2] = $rotationMatrix[6]*$point[0] + $rotationMatrix[7]*$point[1] + $rotationMatrix[8]*$point[2];
return $returnMatrix;
}

Я запустил этот код в файле obj, который пытался повернуть на 270 градусов, и записал его в другой файл.

Когда я получил две модели рядом в блендере, они были только на 10 градусов друг от друга.

Есть идеи, что здесь не так?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]