![]()
Quelques petits rappels de trigonométrie...
Détacher l'animation de la page web...
Nous
allons faire ici quelques petits rappels sur les fonctions trigonométriques.
Même si celles-ci ont laissé de désagréables souvenirs
à certains.
En effet, il ne s'agit pas ici de refaire des mathématiques pour elles-mêmes.
Mais ces fonctions sont des OUTILS précieux pour résoudre
quantité de problèmes graphiques de géométrie plane
(et la scène de Director, ou une page web, ou une animation Flash sont
toutes construites sur des plans et posent donc assez souvent ces problèmes
de géométrie plane !).
-
Lorsqu'un point parcourt un cercle,
- Si on prend comme axe des x et des y les deux diamètres, horizontal
et vertical du cercle,
- Si on regarde l'angle que forme le rayon du cercle partant du point avec l'axe
des x et que l'on appelle cet angle a,
Alors les coordonnées x et y du point sur les axes représentent chacune une fonction que l'on appelle "trigonométrique" (nous verrons ci-dessous pourquoi ce nom).
-
sur l'axe des x on trouve la réprésentation du cosinus
de l'angle, que l'on note cos(a),
- sur l'axe des y, on trouve la représentation du sinus
de l'angle, que l'on note sin(a).
On
utilise quelques conventions pour cela :
- pour lire directement le cosinus et le sinus de l'angle sur l'axe des x et
des y respectivement, on considère que le rayon du cercle vaut 1 (nous
verrons également pourquoi plus bas),
- le cercle de rayon 1 ainsi constitué s'appelle le "cercle
trigonométrique",
- toujours conventionnellement, on considère que l'angle vaut 0 quand
le point se trouve sur l'axe des x, du coté positif. Le sinus vaut alors
0 et le cosinus vaut 1.
- et on considère que l'angle est croissant quand le point tourne sur
le cercle dans le sens inverse des aiguilles d'une montre (que l'on appelle
aussi le sens "antihoraire" ou sens trigonométrique).
Faisons
une autre constatation :
si on regarde la figure formée en permanence par :
- le rayon du cercle qui passe par le point,
- l'axe des x,
- l'axe des y,
on s'aperçoit que l'on a toujours un rectangle composé de deux
triangles rectangles symétriques (un triangle rectangle est un triangle
dont l'un des angles est droit, c'est à dire qu'il vaut 90 °).
Maintenant, ignorons, dans le premier demi-cercle (supérieur), le triangle rectangle supérieur pour ne nous intéresser qu'au triangle rectangle inférieur.
Toujours en regardant l'angle formé par le rayon et l'axe des x comme signalé auparavant, on s'aperçoit que le sinus de l'angle est également représenté par le segment vertical passant par le point et croisant l'axe des x.
Si
l'on ne regarde que le triangle (et qu'on ignore désormais le cercle),
on peut donc dire que :
- le cosinus d'un angle est représenté par son
coté adjacent,
- le sinus d'un angle est représenté par son
coté opposé.
Intéressons nous maintenant au troisième coté du triangle. Qui est aussi, dans notre figure, le rayon du cercle... On l'appelle l'hypothénuse.
Dans un triangle réel (et non plus conventionnel comme nous l'avons utilisé pour construire nos deux fonctions), cette hypothénuse ne vaudra pas 1, mais un certain nombre de centimètres par exemple (sur le papier), ou un certain nombre de pixels (sur l'écran).
La
valeur du cosinus sera alors : coté adjacent / hypothénuse,
La valeur du sinus sera alors : coté opposé / hypothénuse.
(les cotés et l'hypothénuse étant bien sûr mesurés
dans la même unité).
Et en effet, regardons ce qui se passe lorsque le triangle est plat, c'est à dire :
-
quand l'angle vaut 0 °:
le coté adjacent et l'hypothénuse sont égaux donc
cosinus = coté adjacent / hypothénuse = 1
par ailleurs, le coté opposé vaut 0 donc
sinus = coté opposé / hypothénuse = 0
-
quand l'angle vaut 90 ° (le 1/4 de cercle) :
c'est cette fois le coté opposé et l'hypothénuse qui sont
égaux, donc
sinus = coté opposé / hypothénuse = 1
et le coté adjacent vaut 0 donc
cosinus = coté adjacent / hypothénuse = 0
-
quand l'angle vaut 180 ° (le 1/2 cercle) :
le coté adjacent et l'hypothénuse sont de nouveau égaux
mais cette fois le coté adjacent est négatif (puisque situé
à gauche de l'axe des y) donc
cosinus = -coté adjacent / hypothénuse = -1
et le coté opposé vaut à nouveau 0 donc
sinus = coté opposé / hypothénuse = 0
-
quand l'angle vaut 270 ° (les 3/4 de cercle) :
le coté opposé et l'hypothénuse sont égaux, mais
cette fois c'est le coté opposé qui est négatif (puisque
en dessous de l'axe des x) donc
sinus = -coté opposé / hypothénuse = -1
et le coté adjacent vaut 0 donc
cosinus= coté adjacent / hypothénuse = 0
Tous le reste du temps, on voit que l'hypothénuse est toujours plus grande que les deux cotés du triangle rectangle et donc la valeur de ces deux fonctions, en valeur absolue, sera toujours inférieure à 1. D'ailleurs, dans un cercle, l'hypothénuse est constante, puisque c'est le rayon du cercle.
On voit donc que ces deux fonctions servent à calculer différentes valeurs du triangle quand on en connaît d'autres (calculer des cotés quand on connaît des angles ou vice-versa). On appelle ces opérations "résoudre un triangle" et on comprend pourquoi ces fonctions s'appellent "trigonométriques" : elles servent à mesurer ("mètrer") un polygone à 3 cotés, c'est à dire un trigone, c'est à dire, plus usuellement, un triangle.
Cette
capacité à pouvoir calculer les différents rapports des
éléments d'un triangle rectangle entre eux est précieuse.
En effet, en général, quelle que soit la configuration de géométrie
plane devant laquelle on se trouve, on peut toujours la décomposer en
plusieurs triangles rectangles et utiliser les fonctions trigonométriques
(on dit aussi "lignes trigonométriques") pour calculer la valeur
que l'on cherche à connaître. Soit que l'on connaisse un angle
(une direction...) et que l'on souhaite connaître une distance, ou l'inverse,
quand on connaît la position de différents points dans le plan,
et que l'on souhaite connaître les angles qu'ils peuvent former entre
eux.
C'est la première utilité des fonctions trigonométriques.
Une
autre utilité de ces fonctions est de pouvoir imposer à un objet
un mouvement courbe quasi-quelconque, du cerlce parfait aux trajectoires les
plus biscornues !
En effet, on voit, d'après notre cercle trigonométrique, que si
l'on dit à un point :
- que sa position horizontale (son locH en lingo) est égal à (un
rayon x le cosinus d'un angle),
- que sa position verticale (son locV) est égale à (un rayon x
le sinus d'un angle),
et que l'on fait varier la valeur de cet angle dans le temps, alors le point
va se mettre à décrire une trajectoire circulaire.
Et dans ce cas, l'angle dont on va prendre les sinus et cosinus est une simple
valeur numérique interne au script, et que le script incrémentera
en permanence. Plus on incrémentera l'angle rapidement, et plus le point
tournera vite !).
Par
ailleurs, si on prend deux valeurs différentes, pour le rayon horizontal
et pour le rayon vertical, alors on obtiendra une ellipse...
Et en mélangeant toutes ces fonctions avec divers paramètres qui
évoluent dans le temps, avec différents angles qui varient aussi
dans le temps avec des rythmes différents, alors on obtiendra des figures
très curieuses (voir section "courbes" sur ce site).
Voyons maintenant quelques autres propriétés intéressantes et utiles de ces fonctions trigonométriques.
Elles sont périodiques :
Sur le cercle trigonométrique, on voit que lorsque le point a décrit le cercle entier, c'est à dire quand l'angle arrive à une valeur de 360 ° (ou 2p radians), tout recommence comme si on repartait de 0. Ce qui veut dire que 360 est équivalent à 0, 361 est équivalent à 1, etc... et que 450 équivaut à 90 (450 = 360 + 90).
En terme de trigonométrie, demander le sinus d'un angle de 1 477 ° par exemple revient à la même chose que demander le sinus d'un angle de 37 ° (parce que 1477 = (4 x 360) + 37).
Autrement dit, si notre angle est un compteur éternellement incrémenté de 1, le sinus et le cosinus donneront éternellement la même série de valeurs, comprises entre +1 et -1 (en comptant en degrés).
On le voit sur les courbes à droite de l'animation : on reporte l'angle qui croît sur l'axe des x (et on peut dire alors que cet angle représente le temps qui passe), et on reporte les valeurs du sinus et du cosinus sur l'axe des y. On obtient alors la forme caractéristique d'une courbe qu'on appelle sinusoïde ou courbe sinusoïdale.
Que
constate-t-on ?
- que cette forme se répète éternellement dans le temps,
- que le sinus et le cosinus décrivent des valeurs égales, mais
décalées dans le temps. On dit qu'elles sont "déphasées"
de 90 °.
D'une manière générale, toute fonction que l'on construira avec des sinus et des cosinus, en les additionnant ou en les soustrayant, en les multipliant ou en les divisant entre eux, sera toujours périodique, avec des formes plus ou moins complexes.
Tout mouvement répétitif pourra donc toujours être modélisé à l'aide de fonctions sinusoïdales (c'est du reste ce que nous avons fait avec le pendule).
En outre, si on complexifie suffisament l'équation, en employant une combinaison de sinus et de cosinus, avec des coefficients différents, et des angles qui varient dans le temps à des vitesses différentes dans le temps, alors on obtiendra assez rapidement des mouvements qui pourront paraître erratiques, alors qu'ils seront en fait périodiques, et qui pourront être interessants graphiquement (voir un exemple de "menu" fantaisiste).
Forme de la variation des fonctions sinusoïdales dans le temps :
En
regardant ces courbes, on voit qu'elles varient très vite au voisinage
de 0, et très lentement au voisinage de leurs maximum et minimum.
Cette propriété est intéressante graphiquement.
Un mouvement modélisé à l'aide d'une fonction sinusoïdale
paraîtra toujours très souple, sans à-coup, sans rupture,
presque organique.
Pour faire
apparaître un menu déroulant par exemple, une incrémentation
simple sera brusque, alors qu'une incrémentation sinusoïdale sera
souple et élégante, comme amortie.
Propriété des fonctions sinusoïdale dans les calculs :
Il
existe une troisième ligne trigonométrique dont nous n'avons pas
encore parlé. Il s'agit de la tangente.
Elle est représentée en jaune dans l'animation. Elle se comporte
un peu différemment des deux premières.
En effet, la tangente est représentée par la projection du point
sur la tangente verticale au cercle, au point où l'angle vaut 0. De ce
fait, on voit que lorsque l'angle vaut 90 ° ou 270 °, alors le rayon
qui passe par le point se retrouve parallèle à cette tangente,
et la valeur de la fonction vaut alors +l'infini (à 90 °) ou -l'infini
(à 270 °).
En effet, comme deux parallèles ne se rencontrent jamais, la projection
du point sur cette tangente se retrouve rejeté à l'infini, vers
le haut ou vers le bas.
On est donc bien en présence d'une fonction périodique, mais il
existe deux valeurs d'angle pour lesquelles elle ne peut pas être utilisée
dans les calculs (en fait, on peut tout de même parce que Lingo ne renvoie
pas la valeur INF si on lui demande la tangente de
p/2, mais une valeur très
grande de 1,63317787283838 x 1016).
Une
de propriétés intéressante de la tangente, est qu'elle
vaut sin / cos.
tan = sin / cos
et comme on se souvient de ce que valent les sinus et cosinus en rapport de
coté, on peut aussi dire que
tan = coté opposé / coté adjacent
Ceci
nous amène à la notion de fonction trigonométrique inverse.
En effet, jusqu'ici, nous avons pris un angle, et ensuite nous avons calculé
son sinus, son cosinus ou sa tangente.
Mais que se passe-t-il si nous connaissons le sinus, ou le cosinus, ou la tangente,
et que nous voulons connaître l'angle ?
Il faut alors utiliser les fonction trigonométriques inverses, que l'on appelle "arc sinus", "arc cosinus", et "arc tangente".
Si
nous reprenons les angles remarquables que nous avons examinés plus haut,
on peut dire que
arcSin(1) = 90 °, arcSin(0) = 0, etc...
Ce sont ces fonctions trigonométiques inverses dont nous avons besoin quand nous connaissons la place de deux ploints dans le plan et que nous souhaitons connaître l'angle qu'il font avec l'horizontale par exemple.
Pour bien comprendre les explications qui suivent, on pourra utilement faire des petits schémas sur un papier, en traçant deux points, et une horizontale qui passe par l'un d'eux (ou une verticale) !
A
ce propos, on pourra s'étonner qu'un langage comme lingo ne fournisse
pas la fonction arcSin, ni la fonction arcCos, mais uniquement la fonction arcTan
qu'il apelle atan() (voir à ce sujet le dictionnaire
lingo).
En fait, cela s'explique si nous réfléchissons au fait que la
tangente vaut
coté opposé / coté adjacent.
Dans le cas de deux points par exemple, le coté adjacent sera représenté
par leur différnce de position horizontale (la différence des
locH), et le coté opposé sera calculé par la différence
des position verticales (différence des locV), si nous souhaitons obtenir
l'angle par rapport à l'horizontale.
Ce sera l'inverse bien sûr si nous cherchons l'angle par rapport à
la verticale.
En
revanche, nous aurons alors deux
problèmes qui sont illustrés par cette animation.
Dans cette animation, on peut attraper le point orange et le déplacer
à la souris.
L'animation trace en permanence la ligne qui rejoint les deux points (l'hypothénuse
du triangle rectangle), et la vertcale qui relie le point à l'horizontale,
de manière à matérialiser le triangle entier.
En manipulant ce point orange on constatera deux choses :
-
Tant que le point orange reste à droite du point vert, l'angle formé
par l'hypothénuse avec l'horizontale est calculé correctement,
positif si le point orange est au dessus de l'horizontale, négatif s'il
est en dessous.
En revanche, si le point orange se trouve à gauche du point vert, alors
l'angle calculé n'est plus correct.
Pour
plus de facilité, divisons l'espace en quatre quadrants, comme sur une
carte, et appelons la direction verticale vers le haut Nord. L'Est est alors
à droite, le Sud en bas et l'Ouest à gauche.
Appelons le quart de plan supérieur droit le quadrant Nord-Est (NE),
le quadrant inférieur droit quadrant Sud-Est (SE), celui qui est en bas
à gauche le quadrant Sud-Ouest (SW), et le dernier en haut à gauche
le quadrant Nord-Ouest (NW).
En adoptant cette terminologie pour la division de l'espace (et j'encourage à l'utiliser chaque fois que l'on manipule des angles),on voit dans la figure que les valeurs d'angle calculées dans le quadrant NW sont les mêmes que les valeurs symétriques par rapport au point vert dans le quadrant SE. De la même manière, les valeurs d'angle calculées dans le quadrant SW sont les mêmes que les valeurs symétriques par rapport au point vert dans le quadrant NE.
-
Si le point orange se trouve exactement au dessus ou en dessous du point vert,
alors leur différence de position horizontale est nulle.
Et comme l'arcTangente vaut coté opposé / coté adjacent,
c'est à dire différence de locV / différence de locH, nous
nous trouvons face à un problème de division par 0, laquelle est
impossible.
Donc, si nous souhaitons calculer l'angle sur le cercle complet, c'est à dire sur 360 °, il nous faudra, chaque fois que nous faisons le calcul, tester dans quel quadrant se trouve le point orange, et également tester s'il se trouve pile sur une des quatre directions, N, E, S ou W. Ce qu'on fera en comparant les positions horizontales et verticales.
En fonction du résultat de ce test, il ne nous restera plus qu'à corriger l'angle, en lui ajoutant les valeurs qui vont bien à savoir (ce traitement est illustré sur cette animation):
si
le point est dans le quadrant NE alors
l'angle
à prendre = l'angle trouvé par calcul
sinon si le point
est dans le quadrant SE alors
l'angle
à prendre = 360 + l'angle trouvé par calcul
sinon si le point est dans le quadrant SW alors
l'angle
à prendre = 180 + l'angle trouvé par calcul
sinon si le point est dans le quadrant NW alors
l'angle
à prendre = 180 + l'angle trouvé par calcul
sinon si le point est au N alors
l'angle
à prendre = 90
sinon si le point est àl'E alors
l'angle
à prendre = 0
sinon si le point est au S alors
l'angle
à prendre = 270
sinon si le point est àl'W alors
l'angle
à prendre = 180
fin si
Notons
qu'il est inutile d'apprendre toutes ces valeurs par coeur. Elles changeront
en fonction de l'orientation de la figure qu'on a à traiter de toutes
façons. Si l'on a compris le principe du cercle trigonométrique,
la technique de programmation consistera à faire le calcul basique de
l'arc tangente, puis à regarder les valeurs qu'on obtient, en ensuite
en déduire les valeurs à ajouter ou à retrancher pour obtenir
la valeur correcte en fonction de ce que l'on cherche à réaliser.
Mais on ne pourra pas s'affranchir du test pour savoir si les points se trouvent
au dessus ou en dessous l'un de l'autre, et si les points se trouvent à
gauche ou à droite l'un de l'autre.
Dernières formules utiles en trigonométrie et pour la résolution d'un triangle:
- jusqu'à une valeur d'environ 20 ° (ou -20 °, ou entre 340 et 360 °), on peut considérer par approximation que le sinus est égal à la tangente,
- la somme du carré du sinus et du carré du cosinus est toujours égale à 1 : sin2 + cos2 = 1
-
le théorème de pythagore :
le carré de l'hypothénuse est égale à la somme des
carrés des deux cotés de l'angle droit :
Ce qui permet en tout temps de calculer la distance entre deux points :
cette distance est l'hypothénuse d'un triangle, les deux cotés
de l'angle droit sont les différences de position horizontale et de position
verticale.
Donc :
distance entre deux points = racine carrée ( (diff de locH)2
+ (diff de locV)2 )