2017-04-27 47 views
0

我有这条输出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)) 

回答

1

XY,和Z不是角度,它们可通过角度ABC限定的旋转矩阵。

目前尚不清楚“用它们画线”的含义是什么,它们只是用来旋转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') 

enter image description here

+0

谢谢,这是我一直在寻找的解释。我很抱歉我的措词不太清楚。 – alienmode

相关问题