J'essaie de trouver le chemin le plus court entre deux points dans une grille sans obstacles et se déplaçant dans toutes les directions (N NE E ES S SW W WN).
Cela semble être une tâche courante... N'est-ce pas déjà implémenté dans Matlab ? Lorsque Matlab trace deux points reliés par une ligne ( plot(X,Y, '-') ), il semble effectuer ce calcul en interne, car je suppose que l'image générée est également une grille.
Exemple : De [1,1] à [3,6], une solution est [1,1 ; 2,2 ; 2,3 ; 2,4 ; 3,5 ; 3,6].
J'ai essayé :
dist_x = length(linspace(p1(1),p2(1), dist(p1(1),p2(1))+1));
dist_y = length(linspace(p1(2),p2(2), dist(p1(2),p2(2))+1));
num_points = max(dist_x, dist_y);
x = round(linspace(p1(1),p2(1),num_points));
y = round(linspace(p1(2),p2(2),num_points));
Mais je pense qu'il renvoie plus de points qu'il ne devrait et peut-être y a-t-il une routine implémentée.
Merci beaucoup.