Point est à l'intérieur du polygone

Signaler
Messages postés
26
Date d'inscription
samedi 16 décembre 2000
Statut
Membre
Dernière intervention
21 novembre 2009
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour

J'ai un vecteur de points, qui forme un polygone fermé (carré, rectangle, triangle quelconque). Mon but est de verifier si un point est  à l'intérieur du polygone.

si quelqu'un connait cet algorithme qui verifier si un point est  à l'intérieur du polygone je suis preneur

3 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

ce genre d'algorithme est présent dans les sources

bonnes recherches

<hr size="2" width="100%" />
Messages postés
26
Date d'inscription
samedi 16 décembre 2000
Statut
Membre
Dernière intervention
21 novembre 2009

j'ai trouvé le code suivant en langage python mais j'ai pas compris la ligne en rouge,est ce que quelqu'un peut m'expliquer?

#define MIN(x,y) (x < y ? x : y)
#define MAX(x,y) (x > y ? x : y)
#define INSIDE 0
#define OUTSIDE 1

typedef struct {
double x,y;
} Point;

int InsidePolygon(Point *polygon,int N,Point p)
{
int counter = 0;
int i;
double xinters;
Point p1,p2;

p1 = polygon[0];
for (i=1;i<=N;i++) {
p2 = polygon[i % N];
if (p.y > MIN(p1.y,p2.y)) {
if (p.y <= MAX(p1.y,p2.y)) {
if (p.x <= MAX(p1.x,p2.x)) {
if (p1.y != p2.y) {
xinters = (p.y-p1.y)*(p2.x-p1.x)/(p2.y-p1.y)+p1.x;
if (p1.x == p2.x || p.x <= xinters)
counter++;
}
}
}
}
p1 = p2;
}

if (counter % 2 == 0)
return(OUTSIDE);
else
return(INSIDE);
}
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
tu as plus de chances en cherchant sur vb6..... tu crois pas?


Vous êtes ici : Thèmes / [forum-VISUAL-BASIC_1.aspx Visual Basic 6] / [theme-ALGORITHME_228.aspx Algorithme] /