(3D的一切)首先给出一个平面。在这架飞机上,我正在画一条线。因此,给出了该线的起点和终点。我要做的是使用线作为矩形的对角线来创建矩形。为此,我只需要另外两个缺失点,它们也在我所拥有的同一平面上。
如何确定遗漏的两点?
例如,在2D中,如果您喜欢点B(6 | 4)和点C(1 | 2),则可以得出结论:A在(1 | 4)上,而D在(6 | 2)。 >
但是我很难找到在3D世界中这样做的方法/算法。
PS:如果我使用了错误的标签,请告诉我另一个建议,谢谢!
答案 0 :(得分:0)
要显示在同一平面上确实存在无限数量的具有公共对角线的矩形:
您具有顶点A
和C
,以及平面法线向量n
,并且想要确定顶点B
和D
。
让B = (bx, by, bz)
(未知)
AB
和BC
边的垂直度条件:向量的点积为零。
(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
,您可以用此表达式替换并为两个未知数bx
和by
求解系统
(bx-ax) * (bx-сx) + (by-ay) * (by-сy) = 0
(bx-ax) * nx + (by-ay) * ny = 0