Bonjour,
j'ai pu voir que le moyen le plus utilisé pour déterminer si un point appartient à un polygone est de déterminer le nombre de fois où on intersecte un coté du polygone pour rejoindre un point extérieur.
Mais il semble aussi que cette méthode n'est pas forcément très rapide car très généraliste sachant qu'il faut avant tout s'assurer que on n'est pas sur un des cotés, que on ne va pas à un moment ou un autre se superposer à un coté (donc vérifier la pente avant)...
Ma question est donc y -a-t-il moyen de
-soit rendre le traitement plus efficace en faisant des précalculs
-soit d'appliquer un autre algorithme
Sachant que (c'est important):
- Mon polygone sera toujours le même (c'est le point qui change), (donc je peux par exemple calculer a l'avance toutes les pentes de toutes les arrêtes du polygone mais y-a-t-il d'autre truc que je peux précalculer ?)
- mon polygone est quelconque (convexe ou concave) mais non croisé.
Une fois que l'utilisateur aura dessiné son polygone, il ne changera pas pour le restant de l'application, par contre il sera souvent demandé si un point est ou non à l'intérieur, je peux donc utiliser un peu de temps juste après la création pour faire beaucoup de calcul si cela permet d'avoir une réponse plus rapide après.
N'y-a-t-il pas par exemple intérêt à découper le polygone au préalable ?
merci pour votre aide,
Bon code,
kerinel
Partager