Bonjour,
Je cherchais à faire un algo pour trouver le plus court chemin entre deux points tout en évitant des obstacles. (obstacles représentés par des segments de droite)
Après quelques recherches, j'ai trouvé Dijkstra et AStar.
J'ai tout de suite éloigné le premier trop complexe pour mon besoin.
J'ai aussi écarté AStar qui scan de façon récursive tous les "nœuds" proche et que j'ai trouvé trop "lourd" étant donné que l'on sait très bien où sont les obstacles.
Donc j'ai mis au point ce petit algo qui travaille avec des segments de droite, ce que je voulais savoir c'est :
1) Ai-je réinventé la roue ? Je pense que oui...
2) S'il vous semble correcte ?
On déclare deux tableaux de segment T_temporaire et T_final qui peuvent contenir des segments de droite.
Donc soit A le point de départ et B l'arrivée.
On place [AB] dans segment T_temporaire
tant que le bon chemin n'est pas trouvé et que segment T_temporaire n'est pas vide:
Pour chacun des segments de segment T_temporaire que l'on nome [AB]
--> Si [AB] traverse un segment d'obstacle :
-----> on nome [CD] l'obstacle le plus proche de A et on place [AC] [AD] [BC] et [BD] dans le segment T_temporaire
--> si non on place [AB] dans T_final
Voila c'est tout simple et ça permet de contourner tous les obstacles. Le premier résultat trouvé ne sera pas forcément le plus court mais celui avec le moins de "segments". Il est toujours possible d'évaluer les chemins en calculant les différentes longueurs de segment.
Merci de me donner votre avis
-----