Page 1 sur 1

math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 13:10
par myrtill
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.

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 14:44
par Turalyon
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.

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 16:42
par myrtill

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 17:13
par Turalyon
C'est quoi A et B? Et quel angle cherche tu à calculer? J'en vois plusieurs possible sur ton schéma...

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 17:29
par myrtill
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.

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 17:56
par Turalyon

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 18:20
par myrtill
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.

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 18:27
par Turalyon
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

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 18:31
par myrtill
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.

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 19:20
par myrtill
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 !

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 18 Mars 2009 22:16
par Kangaax
np.

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 20 Mars 2009 00:46
par Kimmy

Re: math v2 (quiqui aime la trigo ?)

MessagePublié: 20 Mars 2009 10:09
par Kangaax
Non, pas vraiment. Passage en coordonnées polaires avec origine des angles au point B, et comparaison des angles dans ce repère.