点到平面的距离公式

点到平面的距离公式 - 翰墨小生 - 博客园 (cnblogs.com)

准备知识

平面的一般式方程

Ax +By +Cz + D = 0

其中n = (A, B, C)是平面的法向量,D是将平面平移到坐标原点所需距离(所以D=0时,平面过原点)

向量的模(长度)

给定一个向量V(x, y, z),则|V| = sqrt(x * x + y * y + z * z)

向量的点积(内积)

给定两个向量V1(x1, y1, z1)和V2(x2, y2, z2)则他们的内积是

V1V2 = x1x2 + y1y2 + z1z2

点到平面的距离

有了上面的准备知识,则求点到直线的距离不再是难事,有图有真相

如果法相量是单位向量的话,那么分母为1

ORGE中的实现

顺便看一下Ogre中的实现

Real Plane::getDistance (const Vector3& rkPoint) const
{
     return normal.dotProduct(rkPoint) + d;
}

可见Ogre默认法相量为单位向量,且没有对结果取绝对值,根据注释,当点与法相量的方向在同一侧时,结果为正,否则为负。

posted on 2023-09-22 09:59  一杯明月  阅读(141)  评论(0编辑  收藏  举报