Pergunta

Eu tenho uma coleção arbitrária de pontos 3D, eu sei que eles estão no mesmo plano, mas como faço para calcular que o avião?

Foi útil?

Solução

Tome quaisquer três pontos distintos, e formam um triângulo de área não-zero. Calcule a produto cruzado de dois dos lados do triângulo. Isso dá-lhe do avião normal, e você pode usar o ponto comum como um ponto no plano.

Um ponto num plano mais uma normais define um plano .

Outras dicas

Se eles não são todos planar, calcule os coeficientes do avião usando mínimos quadrados se encaixam.

A equação para um avião é Ax + By + Cz = D, então plugue em seus pontos e resolver para os quatro coeficientes desconhecidos.

UPDATE: Só por curiosidade - como você "sabe" que todos os pontos estão no mesmo plano? O que te faz tão certo?

Assumindo que eles são co-planar, escolher três pontos, e tente o seguinte:

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

Por causa quaisquer três pontos não colineares definir um plano, uma possível resposta é ...

Basta pegar os três primeiros pontos que não são colinear.

Outra forma de definir um plano é uma função de dois parâmetros a um ponto. Se você tem três pontos A, B, C, então a função capas f(i,j) = A + (B-A)i + (C-A)j todos os pontos no plano.

Dependendo da aplicação, pode ser útil para normalizar os vetores b = (B-A) e c = (C-A) ser perpendicular e da unidade de comprimento. unidade de comprimento é fácil.

A fim de torná-los perpendiculares, primeiro normalize b, em seguida, tomar o produto escalar de b e c. Esta é a quantidade dos pontos o c vector na mesma direcção como b, então subtrair este a partir de c. Finalmente c = c - (b.c)b normalizar c (isto é, divide-se por isso de comprimento)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top