J'ai une collection arbitraire de points 3d, je sais qu'ils sont coplanaires, mais comment calculer ce plan?Comment sortir l'avion d'une collection arbitraire de points?
Répondre
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.
En supposant qu'ils sont coplanaires, choisir trois points et essayez ceci:
http://www.jtaylor1142001.net/calcjat/Solutions/VPlanes/VP3Pts.htm
Attention! Cela ne fonctionne que si les trois points ne sont pas colinéaires. –
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?
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.
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)
Btw, je pense que le terme correct est coplanaire, ce qui signifie qu'ils partagent un plan. –