在Java中,确定6维中给出的点(我有多少)与6维空间中的其他点位于同一平面上的最佳方法是什么?它清楚如何在2D和3D中做到这一点,但据我所知,一些概念,如交叉产品等,不要推广到更高的维度(或只是特定的几个)。
找到一种方法来回答6D中线上点的相同问题也是有帮助的。更一般地说,我给出了更高维度的点云,我想确定这些点中的一些是否位于同一平面上。
答案 0 :(得分:2)
在N维空间中,如果由所有这些(N + 1)个点形成的单形体的体积为零,则点与N(非简并)其他点位于同一超平面中。可以通过行列式
计算单纯形体积 |1 x1 y1 z1 ...|
|1 x2 y2 z2 ...|
V = 1/N! |1 x3 y3 z3 ...|
|1 x4 y4 z4 ...|
|..............|
请注意,此公式对应于2D情况下的共线性的交叉乘积检查,以及3D情况下的共面性的混合产品检查等
答案 1 :(得分:1)
在线的经典方程,无论尺寸如何,都是:
x/const1 + y/const2 + ... + z/const3 = CONST0
通过2分,你总能找到这个等式:
(x - x1) / (x1 - x2) + (y - y1) / (y1 - y2) + ... + (z - z1) / (z1 - z2) = 0