Page 1 sur 1

comaprer coordonnees

Posté : 13 déc. 2007, 03:26
par choubix
hello a tous

j'aurais une petite question.
jevais recuperer les coordonnees sur une photo.

une photo a des coordonnees gagnantes X et Y.

l'utilisateur clique sur cette photo, je recupere l'abscisse et l'ordonnee via javascript et je stocke dans la base de donnees.

maintenant je souhaiterais trouver les utilisateurs les plus proches des X et Y gagnants mais je ne vois pas trop comment faire ca en php.

qq un pourrait m'aiguilelr svp? ou me dire quelles fonctions creuser en SQL ou php svp?

merci! :)

Posté : 13 déc. 2007, 07:40
par Patriboom
J'irais par valeur absolue de la différence entre les XY du compétiteur et les XY visés.
Disons, quelque chose comme ceci:



Supposons une table Photo avec champs: id_photo, JPG, X, Y
Supposons une table Bidon avec champs: id_gars, Gars, X, Y, id_photo


SELECT
HUMAIN.Gars AS Gars,
ABS(HUMAIN.X - PHOTO.X) AS Diff_X,
ABS(HUMAIN.y - PHOTO.Y) AS Diff_Y
FROM Bidon AS HUMAIN
JOIN Photo AS PHOTO ON PHOTO.id_photo = HUMAIN.id_photo
ORDER BY Diff_X DESC, Diff_Y DESC



Il y a du travail à faire là-dessus, mais ça peut donner des idées.[/i]

Posté : 13 déc. 2007, 11:32
par Ryle
On pourrait même ajouter les deux valeurs obtenues, puisque là tu privilégies les absices par rapport aux ordonnés (si l'utilisateur est très proche en X, mais très loin en Y, l'ORDER BY va le privilégier à quelqu'un qui est un poil moins proche en X, mais beaucoup plus près en Y.

L'idéal, c'est de calculer la distance entre les deux points, et pour cela faut se rappeller de ce bon vieux pythagore : ton écart en X au carré + ton écart en Y au carré est égal au carré de la distance entre tes deux points :) (pas besoin de valeur absolue du coup)

Code : Tout sélectionner

SELECT POW((humain.x - photo.x), 2) + POW((humain.y - photo.y), 2) AS distance_au_carre ... ORDER BY distance_au_carre
pour faire propre tu peux en calculer la racine carré avec SQRT(), mais dans la mesure où c'est pas la distance mais l'ordre de grandeur qui t'interesse, c'est pas utile :)

Posté : 13 déc. 2007, 12:46
par choubix
les fameux cours de maths que j'ai seches en 5eme!! c'etait donc ceux la! ;)

merci a tous les 2.
sincerement je ne voyais pas par quel bout commencer...

tres beau le coup du pythagore!

je ne mets pas encore le resolu vu que je n'ai pas attaque ce bout de code.
neanmoins merci a vous 2! :)