2017-04-27 3 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は、それらが角度AB、及び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') 

enter image description here

+0

ありがとうございました、これは私が探していた説明です。私の言葉があまり明確ではないことをお詫び申し上げます。 – alienmode

関連する問題