我有三个3D平面,每个平面距离原点1.0。我知道他们都在太空中的某个点相交。我知道每个平面都是正常的(并且每个平面上都有一个点,因为它们距离原点都是1.0,沿着法线距离)。
有没有办法计算这个交叉点?我知道如何计算2或3个平面的交点,但我不知道如何继续使用可变数量的平面
谢谢
答案 0 :(得分:0)
两个平面的交点是一条线。 3个平面的交点是3D空间中的一个点。 因此,在所有平面中,选择任意3个平面并找到它们的交点。所有其他平面(如果它们确实在同一点交叉)也将在此点相交。这就是你要找的点!
答案 1 :(得分:0)
通常,通过平面上的点(P)和平面的法向量(N)定义平面。当然,该定义在任何数量的维度上起作用,因为P和N是一般向量。因此,如果
,则点X在平面内dot(X - P,N) == 0
我们可以用
形式重写那个点积dot(X,N) == dot(P,N)
当然,这些点积可以在X的变量中扩展为简单的线性方程。
所有这些如何转化为我们可以使用和记下的方程式?在3-d中,例如,人们可能会考虑通过点[1 2 3]的平面,法线向量[1 0 2]。
因此,如果以下等式成立,则点[x,y,z]在该平面中:
dot([x,y,z],[1,0,2]) == dot([1 2 3],[1 0 2])
,或者
x + 0*y + 2*z = 7
我的观点是,如果你在3-d中有一个平面,它对应于未知数[x,y,z]中的单个方程。如果在这三个未知数中有多个方程(多个平面),那么你就有一个线性方程组。
你应该使用线性代数来解决这个方程组。当存在多于3个方程时,系统(假设各个平面不形成奇异系统)通常没有满足所有方程的精确解。这被称为超定系统,线性最小二乘解决方案用于求解最小化残差平方和的参数集[x,y,z]。