我有三个 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 的平面。
问问题
796 次
2 回答
1
您的问题在书面上受到限制。有无穷多个平面包含两点 A 和 B;到任何第三点 P 的距离将在 [0, X] 范围内,其中 X 是 P 与连接点 A 和 B 的线之间的距离。因此,如果您感兴趣的只是找到点之间的距离P 和连接 A 和 B 的线,有一个算法。这也将唯一地定义包含 A 和 B 且距离 P 最远的平面。
于 2012-06-20T21:37:59.127 回答
1
2 点定义一条线。您始终可以选择包含该 line 和 point 的平面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;
}
说真的,先了解数学。
于 2012-06-20T11:37:43.157 回答