Angle between a plane and horizontal

9 次查看(过去 30 天)
I need to find the angle between a set of planes ax+by+cz+d = 0 and horizontal plane (x-y plane).
For example my first plane equation is x - 4y +3z +1 = 0 so i wrote the following code
n1 = [1 -4 3]; % Normal vector to plane
n2= [0 0 1]; % normal vector to x-y plane
cosang = dot(n1,n2); % actually n1.n2 = |n1||n2|cosang
n1crossn2 = cross(n1,n2);
sinang = norm(n1crossn2); % actually n1*n2 = |n1||n2|sinang n
angle = atand(sinang, cosang);
it gives an answer 53.96
I thought the angle between plane and horizontal is same as the angle between normal to both plane. Is it true? I don't know how to verify this? Also how can i check the sign of the angle(possitive or negative)?
Is there any other way to get the angle between given plane and horizontal plane? Note: I don't know the coordinates of any plane lying on that plane. I only know the plane equation

采纳的回答

Honglei Chen
Honglei Chen 2012-8-9
The angle between the two planes are the angle between the two normal vectors, so your approach is correct. I'm not sure why you need to do atand though. I think once you do the dot product, you can use acosd directily
  1 个评论
bes
bes 2012-8-9
Thanks. Ya . i have corrected as angle = acosd((cosang / norm(n1)*norm(n2)));

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Cartesian Coordinate System Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by