Calcul d'un "score" points sur graphe 3D

(Cliquez-ici pour accéder à la version originale de cette discussion avec couleurs et images)







Posted by: jinines

Bonjour,
J'aimerais pouvoir calculer un "score" pour des points qui sont sur un graphe 3D. ça pourrait être par exemple un scrore par rapport à l'éloigenement à l'origine.
Les points ont 3 coordonnées (x, y, z)
Exemple: (2, 10, 3.6)
(4, 1, 7.9)
(4, 10, 10.7)
x est un entier entre 0 et 4, y est un entier entre 0 et 10 et z est un réel.
Je dois réussir à donner tous mes points sur une échelle (donc calculer leurs "scores") par rapport à la distance de l'origine.
Je ne vois pas du tout comment faire...
En 2D, j'aurais calculer la distance par rapport à la 1ère diagonale, mais là...mystère et boule de chewin-gum...;-)
Merci de votre aide !



Posted by: XENSECP

Si j'ai bien compris tu cherche la distance d'un point (x,y,z) à l'origine (0,0,0) dans l'espace (R^3), c'est ça ?



Posted by: jinines

Si tu penses que c'est une bonne façon de calculer un score, oui c'est ça...
En fait je cherche à calculer quels sont les points les plus intéressants pour moi: sachant que les valeurs les + interessantes pour moi sont:
pour x=4 (le max), y=10 (le max) et z le plus grand possible.
Donc j'imagine que si je calcule la distance par rapport à l'origine, je n'aurai plus qu'à prendre les points ayant la distance la + grande par rapport à l'origine.
Mais je sais pas faire...



Posted by: ffpower

Si j ai bien compris,tu veux donner une valeur a un tel triplet..Mais ca depend de ce que tu veux:par exemple qu est ce qui doit valoir le plus entre (4,10,0) et (3,9,10000)?soit un peu plus precis sur ce que tu veux et on devrait pouvoir t aider



Posted by: XENSECP

J'avoue que c'est pas très clair....
ça doit être pour un prgm de jeu ?!



Posted by: ffpower

Je suppose^^



Posted by: jinines

Non, c'est pour du traitement automatique des langues. je suis informaticienne, et pas matheuse...;-(
Je veux trouver un moyen de classer mes triplets du "plus fort au moins fort":
x= 4 c'est la + forte valeur
y=10 c'est la + forte valeur
z=réel le + grand possible
Je sais dire quel est le + fort en les regardant, mais il me faudrait un moyen de formaliser ça avec une formule.
Merci pour votre aide ;-)



Posted by: jinines

Par exemple: entre a=(2, 10, 3.6) et
b=(4, 1, 7.9) et
c=(4, 10, 10.7)
le classement de mes triplets du plus fort au moins fort serait:
c, b, a

Y'a-t-il un moyen de formaliser ça ??



Posted by: ffpower

T a pas répondu sur mon exemple..



Posted by: jinines

Sur ton exemple: a=(4,10,0) et b=(3,9,10000)
x ayant plus d'importance que y, qui lui en a plus que z.
C'est donc a qui est le + "fort".
peut-être est-il possible d'avoir une formule avec des pondérations différentes (des coef) pour x, y et z ?
Est-ce qu'une formule du genre existe ??
merci



Posted by: Jean_Luc

Salut,

Si tu as un maximum sur z alors oui tu peux appliquer un système de pondération sinon ce n'est pas possible et tu seras obliger de faire une ou plusieurs comparaisons. (Si le but c'est d'ordonner les points ?)
Ex:
Code:
fonction EstPlusGrandQue(point a,point b) { if( a.x > b.x ) return true; else if( a.x==b.x ) { if( a.y > b.y ) return true; else if( a.y==b.y ) { return a.z>b.z; } } return false; }




Posted by: jinines

Que veux-tu dire par "maximum surr z" ?
z est le nombre qui peut être le + grand (en terme d'intervalle) mais ça doit être le "moins important" dans ma pondération.



Posted by: Jean_Luc

J'ai bien compris. Mais ton z, est-il quelconque ou a-t-il un maximum (l'intervalle est-il borné) comme tu en as spécifié un pour x et y ?



Posted by: ffpower

Je propose 11x+y+z/(z+1)



Posted by: Jean_Luc

Oui, bien joue si z est positif ca marchera. (J'avais pas pense au fait que x et y sont des entiers).



Posted by: jinines

z n'est pas borné, c'est un réel positif. il est borné à gauche mais pas à droite.



Posted by: Jean_Luc

Dans ce cas, tu peux te servir de la formule proposé par ffpower



Posted by: jinines


Bon je vais réfléchir un peu plus à mon problème, merci d'avoir essayé de m'aider.



Posted by: ffpower

pas de probleme^^
Ma formule donne un score entre 0 et 55,apres tu peux aussi multiplier par exemple par 100/55=20/11 pour avoir un score sur 100











-