两平面的夹角为所成角中较小的角
其中n1、n2分别为两个平面的法向量。n1 ∙ n2 = a1 * a2 + b1 * b2 + c1 * c2。|n1| = √(a1a1+b1b1+c1c1)。
C++ 代码
pcl::PointXYZ n1(mdelCoefficients_plane->values[0],
mdelCoefficients_plane->values[1],
mdelCoefficients_plane->values[2]),
n2(mdelCoefficients_plane1->values[0],
mdelCoefficients_plane1->values[1],
mdelCoefficients_plane1->values[2]);
double angle = get_angle(n1,n2);
cout << "平面间夹角:" << angle << endl;
double get_angle(pcl::PointXYZ n1, pcl::PointXYZ n2) {
double cosθ = abs(n1.x * n2.x + n1.y * n2.y + n1.z * n2.z) /(sqrt(n1.x * n1.x + n1.y * n1.y + n1.z * n1.z) * sqrt(n2.x * n2.x + n2.y * n2.y + n2.z * n2.z));
double angle = std::acos(cosθ);
angle = angle * 180 / 3.14;
return angle;
}