如何围绕轴旋转立方体 - MATLAB

时间:2012-04-30 16:52:26

标签: matlab geometry

我正在为我的课程做一个作业,我需要围绕一个给定的轴旋转一个立方体。我不能使用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 

图像没有变化。

我确信我忘了傻事。

1 个答案:

答案 0 :(得分:2)

您希望旋转的轴是什么?您是如何在代码中对此进行说明的?

如果您尝试围绕任意轴旋转,则围绕任意轴旋转的通用公式为here。 (以其他方式构建旋转矩阵)。注意手性以及是否使用行主列或列主要矩阵!