Recherche dans Tableau de point
bonjour,
voila mon probleme .
j'ai un tableau de point ( structure POINT {long,long} )
le nombre d element est variable entre 1 et 225 .
je reçois un POINT p , et je veux trouver l'index du POINT du tableau précedent le plus proche du POINT p reçu.
le HIC est que le tableau est ordonné mais pas forcement tjrs ds le meme sens . ( en gros y a 4 facons de l ordonner suivant X ou Y croissant ou décroissant )
j'ai trouvé un algo mais franchement c'est une usine a gaz ...
si qq'un une idée ?
pour l'explication , il s'agit d'un algo pour ensuite calibrer une dalle tactile . celle ci n'etant pas forcement monter dans le moniteur toujours dans le meme sens selon constructeur .
ps : j'espere avoir été clair :roll: et avoir posté dans le bon forum .
Re: Recherche dans Tableau de point
Citation:
Envoyé par Platypus
le nombre d element est variable entre 1 et 225 .
Franchement, j'ai l'impression que vous utilisez une enclume pour écraser une mouche. Les algos que vous proposez sont sans doute efficaces pour des tableaux de plusieurs milliers de points. Là il y en a 225 maxi, ce n'est pas un parcours séquentiel qui va prendre du temps machine (la moindre comparaison de deux strings entraîne une boucle du même type). Au pire, le calcul de la distance peut prendre un peu de temps (deux multiplications et une racine carrée...) et elle peut être optimisée. Sachant que:
(DeltaX + DeltaY) / Racine(2) <= Distance(X1, Y1, X2, Y2) <= (DeltaX + DeltaY)
donc:
Code:
1 2 3 4 5
| DeltaX = abs(X2 - X1);
DeltaY = abs(Y2 - Y1);
if (DeltaX + DeltaY > DistanceMini) {
// Alors ce n'est pas la peine de traiter le point
} |