我想计算2个平面,参考平面和Plane1之间的角度。当我将pointCloud的X,Y,Z坐标提供给函数plane_fit.m(由Kevin Mattheus Moerman提供)时,我得到系数:
reference_plane_coeff:[ - 0.13766204 -0.070385590 130.69409]
Plane1_coeff:[0.0044337390 -0.0013548643 95.890228]
接下来,我在XZ平面上分别找到两个平面的交点,得到一个线方程; ref_line_XZ和plane1_line_XZ分别为。为此,我将第二个系数设为0.(这是对的吗?)
Aref = reference_plane_coeff(1);
Cref = reference_plane_coeff(3);
ref_line_XZ = [Aref Cref];
Arun = Plane1_coeff(1);
Crun = Plane1_coeff(3);
plane1_line_XZ = [Arun Crun];
angle_XZ = acos( dot(ref_line_XZ,plane1_line_XZ ) / (norm(ref_line_XZ) * norm(plane1_line_XZ )) )
我得到angle_XZ值为0.0012 rad。即0.0685度
当我在图表上绘制这些平面并查看它时,角度似乎远远超过0.0012度。我说的是两个平面与XZ平面相交后两条线所形成的角度。
我做错了什么?
另外,当我试图找到它的法线之间的角度时,使用:
angle_beta_deg = acosd( dot(reference_plane_coeff,Plane1_coeff) / (norm(reference_plane_coeff) * norm(Plane1_coeff)) )
我的角度为0.0713。
在目视检查两个平面的图并从图中手动计算时,angle_XZ应该在9度左右。