2015-12-15 4 views
0

Je n'ai pas trouvé de réponse à ma question en cherchant. Donc, cela pourrait être soit simple soit trop difficile. Restez avec moi.Comment trouver les points d'intersection de deux avion

J'ai deux plans qui se croisent comme vous pouvez le voir sur l'image.

Le plan incliné est tracée en utilisant X, Y et Z (matrices de surf (X, Y, Z)). Le deuxième plan a les mêmes matrices X et Y avec simplement une matrice nulle. Maintenant, je suis intéressé à trouver les valeurs X et Y où les deux plans se croisent.

+2

Avez-vous réellement l'équation que vous avez utilisée pour générer ces points, ou avez-vous seulement les matrices disponibles? – rayryeng

Répondre

0

La solution est aussi simple que vous partiez des équations planes ou seulement des matrices de valeurs. Avec les équations planes, vous avez deux équations dans trois inconnues. Résolvez cela en une équation dans deux inconnues (X et Y), et vous avez votre ligne d'intersection, à partir de laquelle vous pouvez générer n'importe quel ensemble désiré de points d'intersection.

Avec les matrices, vous connaissez la valeur z correspondante: zéro. Choisissez votre méthode de recherche préférée pour trouver les indices dans la matrice originale Z à laquelle la valeur est zéro. Vous obtenez le point d'intersection défini en les utilisant pour indexer dans les matrices X et Y. (Et si les valeurs dans Z ne touchent jamais exactement zéro, tout ce que vous devez faire est d'interpoler.)

Les raisons de la simplicité sont que (a) vos objets sont des plans, et (b) l'un d'entre eux est parallèle à un vecteur de base pour l'espace. Relâcher la contrainte (b) n'ajoute que la complexité de devoir soustraire les deux plans les uns des autres pour permettre à (b) de se maintenir à nouveau. (Ceci n'est utile que si vous n'avez pas les équations planes, si vous le faites, vous pouvez appliquer la solution donnée pour deux plans, quelle que soit l'orientation.)

Si (a) est relaxé, le problème devient non trivial - il peut être très intensif en calcul pour déterminer l'espace d'intersection des variétés arbitraires, comme l'attestera la vaste littérature sur la détection des collisions dans les jeux et la robotique.

Addendum: This link appears to cover the idea more explicitly, mais il ne suppose pas que les surfaces sont des plans, et contient donc une complexité supplémentaire dont vous n'avez pas besoin ici.