我有三个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的平面。
答案 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的平面。