两个三维点的平面方程和该平面与一个点之间的垂直距离

时间:2012-06-20 06:10:41

标签: c math

我有三个3d点表示A(x1,y1,z1),B(x2,y2,z2)和C(x3,y3,z3)。如何得到通过A点和B点的平面方程,然后得到从C点到该平面的垂直距离。垂直距离将是通过点C并平行于平面b / w A和B的平面之间的距离。是否有任何简短的方法来实现这些计算,因为我希望这些计算在C语言的代码中实现,执行时间为主要关心。  主要目的是找到垂直距离b / w C和包含A和B的平面。

2 个答案:

答案 0 :(得分:1)

2分定义。 您始终可以选择包含该线和点C的平面,因此距离始终为零。

你正在寻找的C是这样的:

struct Point {
    double x;
    double y;
    double z;
};

double perpendicular_distance(struct Point *a, struct Point *b, struct Point *c)
{
    return 0.0;
}

说真的,先了解数学。

答案 1 :(得分:1)

您的问题不受书面限制。有一个包含两个点A和B的无限数量的平面;到任何第三点P的距离将在[0,X]范围内,其中X是P与连接点A和B之间的线之间的距离。因此,如果你有兴趣做的就是找到点之间的距离P和连接A和B的线there's an algorithm for that。这也将唯一地定义包含距离P最远的A和B的平面。