Point au polygone ?


Comment faire pour vérifier si le point X,Y est à l'intérieur d'un polygone.
Point dans le polygone
Apparemment, cette solution implique de vérifier combien de fois vous croix
une ligne pour passer du point X,Y de la bordure extérieure de l'écran.
honnêtement, je n'ai jamais essayé de lire le code correctement pour essayer de
comprendre le concept, je sais juste qu'il semble fonctionner !
fonction de PtInPoly(const Points: Tableau de TPoint X,Y: Integer): Boolean
var
& nbsp & nbsp Comte,
& nbsp & nbsp I,
& nbsp & nbsp J : Integer
begin
& nbsp & nbsp Result := False
& nbsp & nbsp Count := Longueur(Points)
& nbsp & nbsp J := Count-1
& nbsp & nbsp for I := 0 to Count-1 do begin
& ! & ! & ! & nbsp si ((Points[I].Y <=Y) et (Y < Points[J].Y)) ou
& ! & ! & ! & ! & ! & ! & nbsp ((Points[J].Y <=Y) et (Y < Points[I].Y))
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp si (x < (Points[j].X - Points[i].X) * (y - Points[i].Y) /
& ! & ! & ! & ! & ! & ! & ! & nbsp (Points[j].Y - Points[i].Y) Points[i].X)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Résultat := pas de Résultat
& ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp J := I
& nbsp & nbsp fin
fin









Point au polygone ?


Point au polygone ? : Plusieurs milliers de conseils pour vous faciliter la vie.


Comment faire pour verifier si le point X,Y est a l'interieur d'un polygone.
Point dans le polygone
Apparemment, cette solution implique de verifier combien de fois vous croix
une ligne pour passer du point X,Y de la bordure exterieure de l'ecran.
honnetement, je n'ai jamais essaye de lire le code correctement pour essayer de
comprendre le concept, je sais juste qu'il semble fonctionner !
fonction de PtInPoly(const Points: Tableau de TPoint X,Y: Integer): Boolean
var
& nbsp & nbsp Comte,
& nbsp & nbsp I,
& nbsp & nbsp J : Integer
begin
& nbsp & nbsp Result := False
& nbsp & nbsp Count := Longueur(Points)
& nbsp & nbsp J := Count-1
& nbsp & nbsp for I := 0 to Count-1 do begin
& ! & ! & ! & nbsp si ((Points[I].Y <=Y) et (Y < Points[J].Y)) ou
& ! & ! & ! & ! & ! & ! & nbsp ((Points[J].Y <=Y) et (Y < Points[I].Y))
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp si (x < (Points[j].X - Points[i].X) * (y - Points[i].Y) /
& ! & ! & ! & ! & ! & ! & ! & nbsp (Points[j].Y - Points[i].Y) Points[i].X)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Resultat := pas de Resultat
& ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp J := I
& nbsp & nbsp fin
fin


Point au polygone ?

Point au polygone ? : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation