上面带有一条线的平面->在该平面上以该线作为矩形的对角线(在3D中)构建一个矩形

时间:2019-01-16 10:06:18

标签: geometry

(3D的一切)首先给出一个平面。在这架飞机上,我正在画一条线。因此,给出了该线的起点和终点。我要做的是使用线作为矩形的对角线来创建矩形。为此,我只需要另外两个缺失点,它们也在我所拥有的同一平面上。

如何确定遗漏的两点?

例如,在2D中,如果您喜欢点B(6 | 4)和点C(1 | 2),则可以得出结论:A在(1 | 4)上,而D在(6 | 2)。 >

但是我很难找到在3D世界中这样做的方法/算法。

PS:如果我使用了错误的标签,请告诉我另一个建议,谢谢!

1 个答案:

答案 0 :(得分:0)

要显示在同一平面上确实存在无限数量的具有公共对角线的矩形:

您具有顶点AC,以及平面法线向量n,并且想要确定顶点BD
B = (bx, by, bz)(未知)

ABBC边的垂直度条件:向量的点积为零。

 (bx-ax) * (bx-сx) + (by-ay) * (by-сy) + (bz-az) * (bz-сz) = 0

“ B处在平面中”的条件:AB与法线的点积为零

 (bx-ax) * nx + (by-ay) * ny + (bz-az) * nz = 0

因此,您有两个线性方程组,用于三个未知数bx, by, bz-无限数量的解。

也许您可能还有其他一些条件/限制来唯一地定义解决方案(在您的2d示例中为轴对齐的矩形)

修改:
任意可能的变体:让AB边平行于OXY平面,因此它垂直于OZ轴,并且第三个方程是

 (bx-ax) * 0 + (by-ay) * 0 + (bz-az) * 1 = 0, so
 (bz - az) = 0

,您可以用此表达式替换并为两个未知数bxby求解系统

 (bx-ax) * (bx-сx) + (by-ay) * (by-сy) = 0
 (bx-ax) * nx + (by-ay) * ny = 0