三维点沿指定向量方向到平面的距离计算方法及C++代码实现 | 您所在的位置:网站首页 › 函数按照向量平移怎么求公式 › 三维点沿指定向量方向到平面的距离计算方法及C++代码实现 |
设平面外一点为P(p1,p2,p3),指定的方向向量为d=(d1,d2,d3),平面Q方程为Ax+By+Cz=D,设系数ABC已经归一化,则其法向量为n=(A,B,C)。则计算点P沿方向向量d到平面Q的距离,可以通过下式计算 (P+t* d)* n=D [1] 其中t为待求的常数。下面将[1]式分两个步骤解释一下该式子的意义(理解了以后其实就很简单): P’ = P+t* d [2] P’ * n=D [3] [2]式表示三维点P沿着方向向量d移动t倍距离,到达点P’,这里应该好理解。[3]式表示的是点P’在平面上,则应该满足平面Q的方程。 因此,通过上述式子即可求出t,即: t= (D - P * n) / d * n [4] 求出t后,可以通过[2]式求出射线与平面Q的交点P’的坐标,最后通过两点距离公式求出点P和P’之间的距离,即为点P沿方向向量d到平面Q的距离dist。计算dist的式子化简后为: dist=t* ||d|| [5] 其中||d||表示向量d的模长。 下面是具体的c++实现代码: |
CopyRight 2018-2019 实验室设备网 版权所有 |