Page 1 sur 1

determiner les utilisateurs donnant les coordonnees les plus

Posté : 07 avr. 2010, 11:56
par Invité
bonjour,

j'ai un petit casse tete qui a mon avis doit se resoudre facilement si on a garde l'esprit matheux! ;)

voila j'ai un point de coordonnees X et Y (on va dire X = 100 et Y = 100)
j'ai des utilisateurs qui donnent les coordonnees (100,101), (101,100), (99,102)...

comment faire en sorte que je puisse retrouver les utilisateurs ayant les coordonnees les plus proches de (100,100) ?
je n'ai pas trop d'idees sur comment m'y prendre...

si qq un peut m'eclairer ca serait super!
merci!

Re: determiner les utilisateurs donnant les coordonnees les plus

Posté : 07 avr. 2010, 12:30
par stopher
L'opération est simple ,


Imaginons le point A( 100 , 100 ) , Le point B(110,120) et le point C(50,150).

Tu souhaites connaitre les point le plus proche de A .. il faut donc le prendre comme référence , ( point 0 ) , et mettre à jour les coordonnées des autres point ..

B( 110-100,120-100 ) => B( 10,20 )
C( 50-100,150-100 ) => C(-50,50)

Ensuite , est bien , il suffit de calculer la distance entre les points ..

distance entre A et B => AB = racineCarre(10²+20²) = 22.3
distance entre A et C => AC = racineCarre(50²+50²) = 70.7

Conclusion le point B est le plus proche de A ...

Tu n'as plus qu'à traduire ça en algo .. et roulez jeunesse ...

Ch

Re: determiner les utilisateurs donnant les coordonnees les plus

Posté : 07 avr. 2010, 12:58
par Invité
super merci! (si j'avais un peu mieux suivi mes cours de geometrie aussi!)

tres sympa de m'avoir file ce coups de main!

Re: determiner les utilisateurs donnant les coordonnees les plus

Posté : 07 avr. 2010, 13:23
par stealth35
par contre ca marche pas si les coordonnées sont negatives...

Re: determiner les utilisateurs donnant les coordonnees les plus

Posté : 07 avr. 2010, 13:59
par stopher
par contre ca marche pas si les coordonnées sont negatives...
Exacte , à prendre en compte dans l'algo au moment du changement d'origine .

Re: determiner les utilisateurs donnant les coordonnees les plus

Posté : 07 avr. 2010, 14:03
par stealth35
ouai, c'est plus compliquer que ca les algos de points les plus pres, y'a quelque exemple sur le net
http://en.wikipedia.org/wiki/Kd-tree :wink:

Re: determiner les utilisateurs donnant les coordonnees les plus

Posté : 07 avr. 2010, 14:17
par stopher
Arf ...

Ca me rappel lorsque j'ai étudié les algos utilisés par les routeurs pour prendre les chemins les plus cours ..
Un casse tête , mais sacrément intéressant ..

Sinon , il y a un article dans un php solutions ( il y a quelques mois ) qui explique différents algorithmes bien connus dans le monde du jeu pour le positionnement dans l'espace ...
Super intéressant .. mais bon , n'ayant encore jamais dû utiliser ce genre d'algo , j'avoue ne pas en savoir beaucoup plus sur le sujet .

Cependant , pour une simple représentation X,Y , Pythagore nous donne une formule plus compacte , qui résout le problème des point aux coordonnées négatives dans un repère orthonormé/

Distance entre un point A et un point B = racinecarre( (Xb - Xa)² + (Yb - Ya)² )




Edit: mouarf ... ba en fait c'est la même formule que j'ai cité plus haut ... mais en une seule ligne .. donc elle fonctionne bien même si les points sont négatifs ! :D .... houuuu c'est loin ...