2009-11-06 3 views

Répondre

13

Prenez des trois points distincts et forment un triangle de la zone non nulle. Calculez le cross product de deux des côtés du triangle. Cela vous donne la normale de l'avion, et vous pouvez utiliser le point commun comme un point sur le plan. Un point sur un plan plus un defines a plane normal.

+1

Ça plane pour toi! – bzlm

+0

Bien sûr, les trois points doivent être non-linéaires. – Niyaz

+0

@Niyaz: Bien sûr. J'ai édité pour clarifier ce qui est requis des points sélectionnés. – unwind

4

Si elles ne sont pas toutes planes, calculez les coefficients du plan en utilisant un ajustement par les moindres carrés. L'équation pour un plan est Ax + By + Cz = D, donc branchez vos points et résolvez les quatre coefficients inconnus. MISE À JOUR: Juste curieux - comment "savez-vous" que tous les points sont dans le même plan? Qu'est-ce qui vous rend si certain?

2

Parce que les trois points non colinéaires définissent un plan, une réponse possible est ...

il suffit de saisir les trois premiers points qui ne sont pas colinéaires.

1

Une autre façon de définir un plan est une fonction de deux paramètres à un point. Si vous avez trois points A, B, C, la fonction f(i,j) = A + (B-A)i + (C-A)j couvre tous les points du plan. En fonction de votre application, il peut être utile de normaliser les vecteurs b = (B-A) et c = (C-A) pour qu'ils soient perpendiculaires et de longueur unitaire. La longueur de l'unité est facile. Pour les rendre perpendiculaires, normaliser d'abord b, puis prendre le produit scalaire de b et c. C'est la quantité que le vecteur c pointe dans la même direction que b, donc soustrayez ceci de c. c = c - (b.c)b Enfin normaliser c (c'est-à-dire diviser par sa longueur)

Questions connexes