如何创建旋转45度的2x2旋转矩阵? 我研究过,但我发现的只是我在代码中使用的,它提供了3x3矩阵!
clear;
clc;
y=@(t) sqrt(t).*cos(4.*t);
num_of_samples = 20 ;
figure;
fplot(y, [0,2*pi])
hold on
tSample = linspace (0, 2*pi, num_of_samples);
ySample = zeros(1,num_of_samples);
for i=1:num_of_samples
temp = tSample(i);
temp_2 = sqrt(temp);
ySample(i) = temp_2*cos(4*temp);
end
mXY=([tSample;ySample]);
fplot(y,[0,2*pi]);
hold on;
plot(mXY(1,:),mXY(2,:),'Xk');
hold on;
plot(mXY(1:10:end),mXY(2:10:end),'Xr');
%rotation matrix
R=rotx(45);
mXYrot=mXY.*R;
答案 0 :(得分:2)
2D旋转与围绕z轴的3D空间中的旋转基本相同。所以你可以简单地使用rotz
创建一个3x3矩阵,但只使用它的左上2x2子矩阵:
R = rotz(45);
R = R(1:2,1:2);
或手动:
a=1/2*sqrt(2);
R=[ a -a; a a ];
注意:如果您没有rotz
所需的工具箱,请自行记下2D旋转矩阵,任意角度alpha
is pretty simple:
R=[cosd(alpha) -sind(alpha); ...
sind(alpha) cosd(alpha)];