math v2 (quiqui aime la trigo ?)

Postez ici tout ce qui ne concerne ni RO ni Prontera.fr. Expression libre ^_^ (dans la limite du raisonnable ;p)

math v2 (quiqui aime la trigo ?)

Messagepar myrtill » 18 Mars 2009 13:10

Hoy tout le monde. ( ca faisait longtemps !)
Je penche depuis plusieurs jours sur un soucis de rotation d'un objet suivant les mouvements de la souris.
La ou ca se corse, c'est que la rotation est comprise entre -180 et 180 et qu'elle occassione parfois de droles de petits effets. (surtout le -180).

Jusqu'à présent, je calculais l'angle de ma souris par rapporte à la normal et je lui retranchais l'angle de mon object.
Si cet angle calculé est > 0 alors rotation++, sinon rotation --.

Tout se passe bien jusqu'a la limite des 180°.
En effet si je passe a 181°, le soft va automatiquement transformer ca en -179°.
Mais du coup, au lieu d'augmenter une fois de 1° et d'arreter la, il va retrancher 1° jusqu'a arriver à-179...
Je n'arrive pas à trouver de solution, ca me gave un peu la xD

Si vous avez une idée ou besoin de plus d'informations, n'hésitez pas.
Avatar de l’utilisateur
myrtill
Rebirth - LV 98
Rebirth - LV 98
 
Messages: 6367
Inscrit le: 12 Mars 2005 10:32

Re: math v2 (quiqui aime la trigo ?)

Messagepar Turalyon » 18 Mars 2009 14:44

l'angle de ta souris par rapport à la normale? La souris c'est un point, je vois mal comment tu peux sortir un angle, et de quelle normale tu parle?

Sinon, radians ftw.
Avatar de l’utilisateur
Turalyon
Rebirth - LV 60
Rebirth - LV 60
 
Messages: 3750
Inscrit le: 16 Déc 2004 15:30

Re: math v2 (quiqui aime la trigo ?)

Messagepar myrtill » 18 Mars 2009 16:42

Avatar de l’utilisateur
myrtill
Rebirth - LV 98
Rebirth - LV 98
 
Messages: 6367
Inscrit le: 12 Mars 2005 10:32

Re: math v2 (quiqui aime la trigo ?)

Messagepar Turalyon » 18 Mars 2009 17:13

C'est quoi A et B? Et quel angle cherche tu à calculer? J'en vois plusieurs possible sur ton schéma...
Avatar de l’utilisateur
Turalyon
Rebirth - LV 60
Rebirth - LV 60
 
Messages: 3750
Inscrit le: 16 Déc 2004 15:30

Re: math v2 (quiqui aime la trigo ?)

Messagepar myrtill » 18 Mars 2009 17:29

A c'est mon objet qui se trouve n'importe ou sur l'écran.
B c'est ma souris qui peut se trouver elle aussi n'importe ou.
Je ramene tout par rapport a l'object et on obtient ce que j'ai en image.

Les angles sont calculés par rapport à l'axe X.

La rotation de B (soit son angle par rapport à l'axe X), est dans cet exemple, d'environ 150°.
(Tu pars de la droite de l'axe X, tu vas vers A le centre et ensuite B).
La rotation de A elle, je la connais déjà. Du coup je compare les deux et voila.
Avatar de l’utilisateur
myrtill
Rebirth - LV 98
Rebirth - LV 98
 
Messages: 6367
Inscrit le: 12 Mars 2005 10:32

Re: math v2 (quiqui aime la trigo ?)

Messagepar Turalyon » 18 Mars 2009 17:56

Avatar de l’utilisateur
Turalyon
Rebirth - LV 60
Rebirth - LV 60
 
Messages: 3750
Inscrit le: 16 Déc 2004 15:30

Re: math v2 (quiqui aime la trigo ?)

Messagepar myrtill » 18 Mars 2009 18:20

oué nan mais c'est pas mon qui choisi ca mais l'application support xD
les angles qu'elle me donne sont comme ca. Je peux très bien m'amuser a décaler, mais ca changera pas trop au final le résultat :/

Tient, un schéma plus clair en fait.
Image
A c'est mon objet et on va plutot dire que c'est un vecteur, qu'il a une direction (rotation).
Si tu traces une droite a partir de ce vecteur, tout ce qui est a gauche de la droite doit faire tourner A dans le sens horaire, et a droite dans le sens inverse.

Le soucis c'est que l'angle, qu'il varie de -180 a 180 ou 0 a 359, il va y avoir un soucis justement à ce moment la, au passage de 180 a -179 ou 359 a 0.
En changeant le code, j'ai réussi a identifier ce passage et a tricher en modifiant une variable, mais je pense que d'un point de vue mathématique, ca doit pouvoir se résoudre tout seul.
Avatar de l’utilisateur
myrtill
Rebirth - LV 98
Rebirth - LV 98
 
Messages: 6367
Inscrit le: 12 Mars 2005 10:32

Re: math v2 (quiqui aime la trigo ?)

Messagepar Turalyon » 18 Mars 2009 18:27

Ok c'est plus clair. Et bien il n'y a pas de distinction à faire entre "à droite" et "à gauche". En verité tout tourne *dans le même sens*.

Si tu veux la nouvelle position de B(x2,y2) par rapport a A(x1,y1) en lui appliquant un angle alpha (en radian), alors; la nouvelle position de B est:

x = (x2-x1)cos(alpha) - (y2-y1)sin(alpha)
y = (x2-x1)sin(alpha) + (y2-y1)cos(alpha)

Ce que tu cherche à faire s'appelle une rotation vectorielle, mais il faut ramener B au repère origine pour appliquer la matrice de rotation (d'ou la soustraction de A).

http://fr.wikipedia.org/wiki/Rotation_vectorielle
Avatar de l’utilisateur
Turalyon
Rebirth - LV 60
Rebirth - LV 60
 
Messages: 3750
Inscrit le: 16 Déc 2004 15:30

Re: math v2 (quiqui aime la trigo ?)

Messagepar myrtill » 18 Mars 2009 18:31

euh non, suivant la position de B (gauche ou droite du vecteur), je veux modifier la direction de A
En fait, la direction de A doit pointer vers B. Mais je ne veux pas changer d'un coup sa direction, je veux l'y amener (d'un certains pas) progressivement.
Avatar de l’utilisateur
myrtill
Rebirth - LV 98
Rebirth - LV 98
 
Messages: 6367
Inscrit le: 12 Mars 2005 10:32

Re: math v2 (quiqui aime la trigo ?)

Messagepar myrtill » 18 Mars 2009 19:20

Omg trouvé grace à Kangaax.
On a changé le repère en prenant la position de la souris comme normal et ca passe xD

Merci a vous deux !
Avatar de l’utilisateur
myrtill
Rebirth - LV 98
Rebirth - LV 98
 
Messages: 6367
Inscrit le: 12 Mars 2005 10:32

Re: math v2 (quiqui aime la trigo ?)

Messagepar Kangaax » 18 Mars 2009 22:16

np.
Kangaax
1st Class - LV 12
1st Class - LV 12
 
Messages: 115
Inscrit le: 14 Mars 2006 23:21

Re: math v2 (quiqui aime la trigo ?)

Messagepar Kimmy » 20 Mars 2009 00:46

Image
Avatar de l’utilisateur
Kimmy
1st Class - LV 30
1st Class - LV 30
 
Messages: 229
Inscrit le: 25 Juin 2007 19:43

Re: math v2 (quiqui aime la trigo ?)

Messagepar Kangaax » 20 Mars 2009 10:09

Non, pas vraiment. Passage en coordonnées polaires avec origine des angles au point B, et comparaison des angles dans ce repère.
Kangaax
1st Class - LV 12
1st Class - LV 12
 
Messages: 115
Inscrit le: 14 Mars 2006 23:21


Retour vers Off-Topic

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Google [Bot] et 1 invité

cron