3D system definition: How btaining the angle between a single axis and a plane

19 次查看(过去 30 天)
Hello, I am having trouble obtaining the angle between a vector and a plane which are defined by two different rotation matrix.
I have two objects, A and B, which are defined by rotation matrices R (Rotation matrix from global origin to A) and R' (Rotation matrix from global origin to B).
R = [a b c; d e f; g h i]
R'= [a' b' c'; d' e' f'; g' h' i']
I want to obtain the rotation in degrees between the axis X from object A to the plane XZ (and eventually XY) from object B.
Thank you in advance.
Alonso

采纳的回答

Matt J
Matt J 2024-8-1
and eventually XY
That would just be the angle between Yprime and Z, wouldn't it?
Yprime=Rprime(:,2);
Z=R(:,3);
angle = acosd( dot(Yprime,Z)/norm(Yprime)/norm(Z) )
  3 个评论
Matt J
Matt J 2024-8-1
编辑:Matt J 2024-8-1
Same sort of thing...
X=R(:,1);
Yprime=Rprime(:,2);
Zprime=Rprime(:,3);
angle1 = 90-acosd( dot(Yprime,X)/norm(Yprime)/norm(X) ) %Angle with plane X'Z'
angle2 = 90-acosd( dot(Zprime,X)/norm(Zprime)/norm(X) ) %Angle with plane X'Y'

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Assembly 的更多信息

产品


版本

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by