我正在为我的课程做一个作业,我需要围绕一个给定的轴旋转一个立方体。我不能使用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
图像没有变化。
我确信我忘了傻事。
答案 0 :(得分:2)
您希望旋转的轴是什么?您是如何在代码中对此进行说明的?
如果您尝试围绕任意轴旋转,则围绕任意轴旋转的通用公式为here。 (以其他方式构建旋转矩阵)。注意手性以及是否使用行主列或列主要矩阵!