如何围绕x轴旋转对象

时间:2015-03-10 17:06:07

标签: php matrix rotation

我正在尝试围绕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度。

这里有什么想法吗?

0 个答案:

没有答案