Comment savoir si une ligne qui croise un avion en C#?
J'ai deux points (un segment) et un rectangle. Je voudrais savoir comment calculer si le segment coupe le rectangle.
Vous devez vous connecter pour publier un commentaire.
J'ai deux points (un segment) et un rectangle. Je voudrais savoir comment calculer si le segment coupe le rectangle.
Vous devez vous connecter pour publier un commentaire.
De mon "Géométrie" de la classe:
Ne http://mathworld.wolfram.com/Line-LineIntersection.html pour la ligne et de chaque côté du rectangle.
Ou: http://mathworld.wolfram.com/Line-PlaneIntersection.html
puisqu'il est absent, je vais juste ajouter qu'il est complet
noter que la méthode tourne les segments de ligne afin d'éviter la direction des problèmes liés à
Si c'est en 2d, puis toutes les lignes sont sur le seul plan.
Donc, c'est de base 3-D de la géométrie. Vous devriez être en mesure de le faire avec une simple équation.
Consultez cette page:
La deuxième solution doit être facile à mettre en place, aussi longtemps que vous traduire les coordonnées de votre rectangle dans l'équation d'un plan.
En outre, vérifiez que le dénominateur n'est pas zéro (ligne ne coupe pas ou qui est contenue dans le plan).
Utilisation de la classe:
Méthode:
Je déteste la navigation sur le MSDN docs (ils sont terriblement lente et bizarre :-s) mais je pense qu'ils doivent avoir quelque chose de similaire à cette méthode Java... et si elles n'ont pas, mal pour eux! XD (d'ailleurs, il travaille pour des segments, et non de lignes).
Dans tous les cas, vous pouvez coup d'oeil l'open source SDK Java pour voir comment est-il mis en œuvre, peut-être que vous allez apprendre quelques nouveaux truc (je suis toujours surpris quand je regarde d'autres personnes de code)
N'est-il pas possible de vérifier la ligne contre de chaque côté du rectangle à l'aide de simple segment de ligne de la formule.