[R] 45° rotation

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

[R] 45° rotation

#1

Message par sozary »

Bonjour!!!
J'ai encore un petit soucis...
Par récursivité, je tente de faire pivoter des coordonnées de 48°, je m'explique:

Step1 Step 2 Step 3
\/ _ _
| | \/
| | |
|

Donc en fait, en step 1, j'ai 1 segment de n taille, qui se divise en 2 segments de (sqrt(2)/2)*n taille.
Ces 2 segments fils sont inclinés de 45° par rapport à celui de leur père.

petite image à l'appui: Image

Comment exercer cette rotation de 45° svp ^^?
Modifié en dernier par sozary le dim. 14 sept. 2014 10:59, modifié 1 fois.
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] 45° rotation

#2

Message par jchd »

J'ai beaucoup de mal à faire partir ma réponse en MP, alors je doublonne ici :
ARGH, tous mes espaces insécables repassent en espace "bormal" et le board les sucre, c'est à s'arracher les touches du clavier, voire autres choses.

Si tu dessines des droites et non pas des figures comme les carrés du post précédent, tu peux grandement simplifier le calcul.

Partons d'un repère "normal", c'est plus simple pour une explication :

| +y
|
|
|
|
______________|_________________ +x
O

avec l'origine en O (0, 0). Je sais que le graphisme Windows emploie une origine et un sens de y différent, mais ce n'est pas utile de rendre les choses plus difficiles à expliquer.

Tu traces donc le premier segment qui va de (0, 0) à (0, n)

|
|
______________|_________________ +x
O

On va dire que c'est le vecteur (0, n). Les vecteurs suivants sont plus courts ; on doit donc le multiplier par Sqrt(2)/2 (soit le diviser par Sqrt(2)). Il suffit de le faire pivoter de 45° dans le sens trigonométrique ou inverse pour obtenir les coordonées des deux vecteurs suivants.
Rotation d'un vecteur (x, y) de -45° dans le sens trigonométrique (sens horaire) :
(X, Y) = (x * Sqrt(2)/2 + y * Sqrt(2)/2, y * Sqrt(2)/2 - x * Sqrt(2)/2)
appliqué à (x, y) = (0, n), on obtient :
(X, Y) = (n * Sqrt(2)/2, n * Sqrt(2)/2)

Rotation d'un vecteur (x, y) de 45° dans le sens trigonométrique (sens rétrograde) :
(X, Y) = (x * Sqrt(2)/2 - y * Sqrt(2)/2, x * Sqrt(2)/2 + y * Sqrt(2)/2)
appliqué à (x, y) = (0, n), on obtient :
(X, Y) = (-n * Sqrt(2)/2, n * Sqrt(2)/2)

Pour obtenir les coordonnées des deux points au bout des deux branches du Y ainsi formé, on additionne les vecteurs (0, n) et l'un ou l'autre des deux vecteurs "fils".

Supprimer le message Ignorer cette scorie.
Modifié en dernier par jchd le dim. 14 sept. 2014 22:16, modifié 1 fois.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

Re: [R] 45° rotation

#3

Message par sozary »

Je te remercies encore :P !
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Répondre