0

我正在为我的课程做作业,我需要围绕给定的轴旋转立方体。我不能使用 MATLAB 函数,所以我需要手动操作。

这是我的尝试,但无济于事。`

function [ CV ] = rotateCubeX( CV, degrees )
    %CV = input vertices/Return val
    %degrees = amount of degrees to rotate
    alpha = degrees * pi/180;
    rotate = zeros(3,3);
    rotate(1,1) = 1;
    rotate(2,2) = cos(alpha);
    rotate(2,3) = -sin(alpha);
    rotate(3,2) = sin(alpha);
    rotate(3,3) = cos(alpha);
    CV = CV * rotate;
    end

前:

25.2000 5.9000 2.5000 
25.7000 5.9000 2.5000 
25.7000 7.9000 2.5000 
25.2000 7.9000 2.5000 
25.2000 5.9000 2.8000 
25.7000 5.9000 2.8000 
25.7000 7.9000 2.8000 
25.2000 7.9000 2.8000 

后:

-10.3544 -23.7200 2.5000 
-10.6536 -24.1205 2.5000 
-9.0513 -25.3175 2.5000 
-8.7521 -24.9169 2.5000 
-10.3544 -23.7200 2.8000 
-10.6536 -24.1205 2.8000 
-9.0513 -25.3175 2.8000 
-8.7521 -24.9169 2.8000 

图像没有变化。

我确定我忘记了一些愚蠢的事情。

4

1 回答 1

2

您希望旋转的轴是什么?你是如何在你的代码中解释这一点的?

如果您试图绕任意轴旋转,那么绕任意轴旋转的通用公式在这里。(查看构建旋转矩阵的其他方法)。注意惯用手以及您使用的是行优先还是列优先矩阵!

于 2012-04-30T17:27:14.007 回答