0

我有一组点,我可以得出以下形式的最小二乘解:

z = Ax + By + C  

我计算的系数是正确的,但是如何在这种形式的方程中获得垂直于平面的向量?简单地使用这个方程中的 A、B 和 C 系数作为使用我的测试数据集的法线向量似乎并不正确。

4

3 回答 3

1

形成两个向量

v1 = <1 0 A>
v2 = <0 1 B>

两者都在平面上并取叉积:

N = v1 x v2 = <-A, -B, +1>     (or    v2 x v1 = <A, B, -1>  )

它之所以有效,是因为两个向量的叉积总是垂直于两个输入。因此,在平面中使用两个(非共线)向量会给你一个法线。

注意:当然,您可能想要一个归一化的法线,但我将把它留作练习。

于 2009-09-24T18:12:11.217 回答
1

继 dmckee 的回答之后:

axb = (a2b3 - a3b2), (a3b1 - a1b3), (a1b2 - a2b1)

在你的情况下 a1=1, a2=0 a3=A b1=0 b2=1 b3=B

所以 = (-A), (-B), (1)

于 2009-09-24T18:19:09.833 回答
1

在 dmckee 答案上有一点额外的颜色。我会直接发表评论,但我还没有足够的 SO 代表。;-(

当 C=0 时,平面 z = Ax + By + C 仅包含点 (1, 0, A) 和 (0, 1, B)。因此,我们将讨论平面 z = Ax + By。当然,这很好,因为第二个平面平行于原始平面,即包含原点的唯一垂直平移。我们希望计算的正交向量在这样的平移下是不变的,所以没有坏处。

当然,dmckee 的措辞是他指定的“向量”位于平面中,而不是点,因此可以说他被覆盖了。但我觉得明确承认隐含的翻译很有帮助。

男孩,这对我来说也有一段时间了。

学究你的... ;-)

于 2009-09-25T00:26:52.297 回答