À l'aide de produit scalaire pour déterminer si le point se trouve sur un plan
Donné: un point, B: Un point connu pour exister sur un plan P, C: la normale du plan P. puis-je déterminer si Un se trouve sur P par le résultat d'un produit scalaire entre (A - B) et C étant égal à zéro? (ou à l'intérieur d'un certain niveau de précision, je vais probablement utiliser de 0,0001 f)
J'ai peut-être raté quelques évident mathématique de défaut mais cela semble être beaucoup plus simple et plus rapide que la transformation de la pointe d'un triangle de coordonnées de l'espace.la réponse à Vérifier si un point est à l'intérieur d'un avion segment
Donc, deuxièmement, je suppose; si c'est une vérification valide, serait-il de calcul plus rapide que l'utilisation de la matrice des transformations si tout ce que je veux, c'est voir si le point est dans l'avion? (et pas de savoir si elle se trouve à l'intérieur d'un polygone sur ce plan, je vais sans doute garder à l'aide de transformations de la matrice pour qu')
OriginalL'auteur Stomy | 2013-06-21
Vous devez vous connecter pour publier un commentaire.
Il est exact que B se situe sur le plan passant par A et avec la normale de P si et seulement si dotProduct(A-B,P) = 0.
Pour estimer la vitesse pour ce genre de chose, vous pouvez très bien en compte le nombre de multiplications. Cette formule a juste trois multiplications, donc sa va être plus rapide que pratiquement n'importe quoi pour faire avec des matrices.
Les mathématiques n'est pas trop mauvais. Notez que dans ce contexte, normal signifie juste perpendiculaire. La normale à un plan est, par définition, le vecteur est orthogonal à tous les vecteurs qui se trouvent dans un avion. Depuis Un est dans l'avion, A - B (ou B - A) est un vecteur dans le plan. Ce vecteur est perpendiculaire à P si et seulement si dotProduct(A-B,P) = 0. Est-ce que c'est?
Ce qui sur le plan de la distance de l'origine? Qui devraient être pris en compte pour que ce soit précis.
La distance de l'origine s'avère être l'abs(dotProduct(A,P)) / longueur(P). C'est la longueur de l'élément A de la direction de P. vous attendez-vous à quelque chose de plus explicite?
OriginalL'auteur David Norman
Les réponses ci-dessus sont plus proches de la preuve, mais pas suffisante. Il devrait être évident que l'utilisation de seulement deux vecteurs est insuffisante, parce que pour un, point P peut être au-dessus de l'avion et une ligne verticale de l'avion allait encore générer un zéro produit scalaire avec un vecteur couché sur l'avion, comme il le ferait pour un point P sur l'avion. La condition nécessaire et suffisante est que si deux vecteurs peuvent être trouvés dans l'avion puis le plan réel est représenté sans ambiguïté par le produit vectoriel des deux vecteurs, c'est à dire
w=uxv. Par définition, w est la zone de vecteur, qui est toujours perpendiculaire au plan.
Ensuite, pour le point P en cause, la construction d'un troisième vecteur s de soit u ou v devrait être testé contre w par le produit scalaire, s.t.
w.s=|w||s|cos(90)=0 implique que le point P se trouve sur le plan décrit par w, qui sont décrits par des vecteurs u et v.
OriginalL'auteur Rio