Bonjour,
J'ai tableau 3*n nommé vertex qui contient les coordonnées x,y et z d'un grand nombre de points (n est souvent supérieur a 10 000). et j'ai un point G avec les coordonnées x1,y1,z1. Je suis à la cherche du point le plus proche à cette point. Pour cela j'ai utilisé la théorème qui me permet de trouver le point le plus proche au point G. J'ai fait ce code:
Tout d'abord j'ai crée un tableau de taille n (longueur du tableau vertex) et j'ai mis dans chaque case la distance euclidienne entre le point G et le point i dans ce tableau puis j'ai eu l'indice de la point la plus proche à ce point.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for k=1:length(vertex) distance_eucl(k)=sqrt(pow2(G(1)-vertex(k,1))+pow2(G(2)-vertex(k,2))+pow2(G(3)-vertex(k,3))); end; [valeur_point_min,index_point_min]=min(distance_eucl); valeur_point_min index_point_min
Le problème que lorsque j'ai affiché ce point j'ai trouvé qu'elle n'est pas le plus proche et elle est très loin !!!
et voila un exemple des coordonnées que je l'ai trouvé après l'application de cette algorithme :
coordonnées du point G est: 3.8265 6.2618 67.6882
coordonnées du point le plus proche d'après l'algorithme : 26.7129 46.0704 88.1563
En plus je suis sûre que cette valeur est fausse puisque G est le barycentre d'une image 3D danc le point le plus proche doit être de même presque au centre cependant elle est à l'haut de l'image!!!
Toute information sera le bien venue et merci d'avance pour tous vos aides
Partager