2009-11-19 6 views
1

Comment vérifier si un segment de ligne tombe partiellement ou complètement à l'intérieur d'un triangle?Segment de ligne dans un triangle

Cheers.

+0

Êtes-vous après 2D ou 3D? – Goz

+0

son 2 dimensions. – Zinx

+0

@Goz: Pourquoi seulement limiter à 2D ou 3D? Ce n'est clairement pas 1D, mais pourquoi pas 4D ou plus? ;) – Guffa

Répondre

4

Obtenir la fonction de la ligne à partir des points d'extrémité du segment de ligne. Vérifiez où cette ligne traverse l'un des côtés du triangle. Si une partie du segment de ligne est à l'intérieur du triangle, la ligne passera d'un côté à l'autre, ou passera exactement le long d'un côté du triangle et traversera deux de ses coins. Si la ligne traverse le triangle, vous comparez les points où la ligne traverse les côtés (ou les coins) du triangle avec les extrémités du segment, pour voir si le segment fait partie de la ligne qui traverse le triangle.

+0

Cela fonctionne seulement en 2D. – Goz

+0

@Goz: Oui, la question n'a pas de sens si d> 2. – Guffa

+0

oui les gars c'est seulement pour 2D – Zinx

2

Pour vérifier si une ligne est entièrement à l'intérieur d'un triangle, vous devez vérifier si les deux extrémités du segment de ligne se trouvent à l'intérieur du triangle. La vérification de la présence d'un point à l'intérieur d'un triangle peut être effectuée à l'aide des techniques décrites here.

Vérifier si un segment intersecte partiellement le triangle est un peu plus complexe, car la vérification de ses points d'extrémité peut ne pas être suffisante. Il y a deux cas possibles d'intersection partielle:

  1. Un point final est à l'intérieur du triangle, et l'autre ne sont pas
  2. Les deux points d'extrémité sont en dehors du triangle, mais le segment traverse au moins l'un des les côtés du triangle.

La vérification 1. peut être effectuée par la technique this. La vérification 2. peut être effectuée par des algorithmes qui vérifient si deux segments se croisent. Un exemple de la façon dont cela peut être fait est here.

+2

Cela ne fonctionne pas nécessairement, il est possible que les deux points soient à l'extérieur du triangle et que la ligne l'intersecte encore. – Goz

+0

OIC, cela signifierait qu'une ligne est partiellement à l'intérieur d'un triangle, et j'ai répondu seulement à propos du "complètement". Merci pour le commentaire, je vais essayer d'améliorer ma réponse ..... – Anna

+0

Doit être OK maintenant :) – Anna

1

Si l'un des points du segment est à l'intérieur du triangle => partiellement, si les deux sont => entièrement

Le point O est à l'intérieur du triangle si et seulement si la somme des angles AOB, BOC, COA est égal à 360 degrés.

Vive,

Gleb

+0

Oui, mais le segment de ligne peut également passer à travers le triangle avec les deux points d'extrémité étant en dehors du triangle. – Guffa

+0

Oh oui, vous devez vérifier la ligne eq. ainsi – glebm

-1

meilleur algorithme suit:

Pourquoi ne pas faire ceci:

  • Si les deux points d'extrémité du segment de ligne se trouvent à l'intérieur ou sur le triangle, puis segment de ligne doit se trouver sur ou à l'intérieur triangle.

Pour vérifier si un mensonge de point à l'intérieur triangle:

  • stand au point, regardez chaque sommet du triangle
  • Si vous regardez chaque sommet dans le sens horaire/anti-horaire alors vous êtes intérieur ou extérieur
+0

@downvoter: vous voulez expliquer? –

Questions connexes