我正在尝试围绕x轴旋转一些3d对象(我不需要在它们的中心旋转它们,所以不需要首先转换为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然后将3x3矩阵乘以给定点
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度。
这里有什么想法吗?