绘制给定x,y和z角度的直线
问题描述:
我有这条输出x,y和z角度的MATLAB代码,我想用它们画出一条直线。有人能指出我如何做到这一点的正确方向吗?绘制给定x,y和z角度的直线
C = pi;
A = pi;
B = pi;
Z = [cos(C),-sin(C),0; sin(C),cos(C),0; 0,0,1];
X = [1,0,0;0,cos(A),-sin(A);0,sin(A),cos(A)];
Y = [cos(B),0,sin(B);0,1,0;-sin(B),0,cos(B)];
R =(X*Y)*Z;
yaw=atan2(R(2,1),R(1,1))
pitch=atan2(-R(3,1),sqrt(R(3,2)^2+R(3,3)^2))
roll=atan2(R(3,2),R(3,3))
答
X
,Y
,和Z
不是角度,它们可通过角度A
,B
和C
限定的旋转矩阵。
目前尚不清楚“用它们画线”的含义是什么,它们只是用来旋转3D空间中的矢量。
这里是绘制旋转矢量与他们的例子:
% define rotation angles (around the axes)
C = pi/2;
A = pi/4;
B = pi/4;
% generate rotation matrices
Z = [cos(C),-sin(C),0; sin(C),cos(C),0; 0,0,1];
X = [1,0,0;0,cos(A),-sin(A);0,sin(A),cos(A)];
Y = [cos(B),0,sin(B);0,1,0;-sin(B),0,cos(B)];
R =(X*Y)*Z;
% generate a vector and rotate it
v = [1;1;1];
u = R*v;
% plot
quiver3(0,0,0,v(1),v(2),v(3));
hold on
quiver3(0,0,0,u(1),u(2),u(3));
xlim([-1 1]); ylim([-1 1]); zlim([-1 1])
axis square
legend('original','rotated')
谢谢,这是我一直在寻找的解释。我很抱歉我的措词不太清楚。 – alienmode