2

3D ポイントの任意のコレクションがあります。それらが同一平面上にあることはわかっていますが、その平面をどのように計算すればよいですか?

4

5 に答える 5

13

任意の 3 つの異なる点を取り、非ゼロ領域の三角形を形成します。三角形の 2 つの辺の外積を計算します。これにより、平面の法線が得られ、共通点を平面上の点として使用できます。

平面上の点に法線を加えたものが平面を定義します。

于 2009-11-06T11:00:39.880 に答える
4

それらがすべて平面でない場合は、最小二乗法を使用して平面の係数を計算します。

平面の方程式は Ax + By + Cz = D なので、ポイントを入力して 4 つの未知の係数を解きます。

更新: 好奇心が強い - すべてのポイントが同じ平面にあることをどのように「知る」のですか? 何があなたをそう確信させるのですか?

于 2009-11-06T11:01:31.000 に答える
2

それらが同一平面上にあると仮定して、3 つの点を選び、これを試してください。

http://www.jtaylor1142001.net/calcjat/Solutions/VPlanes/VP3Pts.htm

于 2009-11-06T11:00:16.170 に答える
2

同一線上にない任意の 3 点が平面を定義するため、考えられる答えは...

同一線上にない最初の 3 点をつかむだけです。

于 2009-11-06T11:09:06.013 に答える
1

Another way to define a plane is a function from two parameters to a point. If you have three points A,B,C, then the function f(i,j) = A + (B-A)i + (C-A)j covers all the points on the plane.

Depending on your application it may be useful to normalise the b = (B-A) and c = (C-A) vectors to be perpendicular and of unit length. Unit length is easy.

In order to make them perpendicular, first normalise b, then take the dot product of b and c. This is the amount the the c vector points in the same direction as b, so substract this from c. c = c - (b.c)b Finally normalise c (i.e. divide by it's length)

于 2009-11-06T11:50:35.957 に答える