MATLAB: How to convert the U,V,W coordinates to its respective angles

MATLAB and Simulink Student Suitenormal vector

Hello, I have obtained the U,V,W coordinates of the normal vectors from a surface, using surfnorm, but i need its angles, not the coordinates, Is there some function on matlab or other method to obtain the angles corresponding to the U,V,W coordinates? Sorry for my English. Thanks in advance.

Best Answer

You have to define first the angle relative to what.
Let's say you want the angle relative to x-y plane. A vector that is perpendicular to x-y plane is [0 0 1] then you can compute the angle of your vector to that plane as:
V1=[u,v,w];
V2=[0,0,1];
Angle_Rad=pi/2-acos(dot(V1,V2)./(norm(V1).*norm(V2)))
Angle_Deg=Angle_Rad*180/pi