Valeurs naturelles trigonométriques
La trigonométrie est une branche des mathématiques qui traite des relations entre les distances et angles dans les triangles par l'utilisation des fonctions trigonométriques sinus, cosinus, tangente.
Les applications de la trigonométrie sont extrêmement nombreuses et elle intervient dans la résolution de nombreux problèmes. Dans nos calculs sur AutoCAD il est courant de se référer à la trigonométrie pour calculer un point, ou un angle, ou encore vérifier une orthogonalité.
Pour mémoire : représentation des sinus et cosinus dans le cercle de rayon 1
Dans la figure suivante, vous trouverez le rappel des signes des sinus et cosinus dans le cercle trigonométrique de rayon 1, on parle du cercle de rayon "unité", suivant le quadrant dans lequel se trouve la valeur angulaire.
Ne pas perdre de vue que les sens croissant des angles (système trigonométrique) va de la droite vers la gauche, soit le sens inverse des aiguilles d'une montre.
AutoLisp connaît la valeur de pi, pas besoin de faire des approximations ou de créer une variable, elle existe déjà et elle s'appelle PI, tout simplement.
Sinus :
Cette fonction retourne la valeur du sinus d'un angle exprimé en radians.
Syntaxe | (sin angle) |
Argument | angle, un nombre (entier ou réel) précisant une valeur angulaire exprimée en radians |
Valeur renvoyée | un nombre réel exprimant la valeur du sinus de l'angle entré en argument |
Exemples:
(sin (/ pi 2)) renvoie 1.0
(sin 0) renvoie 0.0
Cosinus :
Cette fonction retourne la valeur du cosinus d'un angle exprimé en radians.
Renvoie le cosinus d'un angle, exprimé en radians
Syntaxe : | (cos angle) |
Argument : | angle, un nombre entier ou réel qui exprime un angle en radian |
Valeur renvoyée : | un nombre réel exprimant la valeur du cosinus de l'angle entré en argument |
Exemples:
(cos 0) renvoie 1.0
(cos 3.14) renvoie -0.9999999
(cos pi) renvoie -1.0
Lorsqu'on travaille sur les angles en radians, il vaut mieux utiliser la fonction (pi) plutôt que d'entrer des valeurs approchantes, pi étant irrationnel, c'est bien plus précis ainsi, on s'en rend compte dans l'exemple précédent avec le cosinus de 3.14 et de pi, seul le second a une précision suffisante pour les calculs.
Atan
Cette fonction renvoie la valeur de l'arc tangente du nombre spécifié, la valeur est exprimée en radians.
Rappel de définition :
l'arc tangente d'un nombre x est l'angle y (exprimé en radians) dont la tangente est x.
Syntaxe : | (atan num1 [num2]) |
Arguments
| num1, un nombre (entier ou réel) num2, un nombre (entier ou réel) |
Si les deux arguments num1 et num2 sont renseignés, la fonction (atan) renvoie L'arc tangente de num1/num2 (num1 divisé par num2)
Appelée avec un seul argument, (atan) ne renvoie des valeurs angulaires qu'entre –pi/2 et pi/2 (-1.570796… et + 1.570796…)
Avec deux arguments, (atan) considère les signes des valeurs des sinus et cosinus pour déterminer la quadrant de l'angle (alors exprimé entre 0 et 2*PI).
(atan 1.0) renvoie la valeur 0.79 (0.785398..) 1.0 est la valeur de la tangente de l'angle 0.79 (0.785398..) |
( atan -1.0 ) renvoie -0.785398
( atan 1. 1.) renvoie 0.785398 comme ( atan 1.)
( atan "3.12") renvoie une erreur : type d'argument incorrect: numberp: "3.12" car c'est une string (chaîne de caractères).
Et la TANGENTE dans tout çà ?
Elle n'est pas définie comme fonction AutoLISP mais il est aisé de la "fabriquer".
Graphiquement, c'est quoi la tangente en trigonométrie ?
On peut remarquer que cette longueur tend vers l'infini, car lorsque l'angle va se rapprocher de la verticale cette valeur va prendre une valeur très grande qui devrait être "l'infini" dans le cas d'un angle de Pi divisé par deux (angle droit), j'en parle plus loin...
Définition de la nouvelle fonction tangente que je vais nommer da:tan
( defun da:tan ( alpha )
( / ( sin alpha ) ( cos alpha ) )
)
L'argument alpha est une valeur d'angle exprimée en radians.
Exemple : ( da:tan 0.6280 ) renvoie : 0.726056 comme le montre cette image :
On voit dans beaucoup de sites portant sur l'AutoLISP cette fonction créée par l'utilisateur, mais avec un contrôle de la valeur du cosinus, à savoir qu'il soit différent de 0 (zéro).
En effet, si on demande le cosinus de l'angle 1.5708... (pi divisé par deux) le cosinus devrait être 0 (zéro) et donc bloquer la fonction que je viens de créer, car il est impossible de diviser par 0 (zéro).
C'est compter sans le côté très malin des concepteurs d'AutoCAD et d'AutoLISP car en demandant le cosinus de cet angle on s'aperçoit que la valeur approche de 0 (zéro) sans toutefois valoir exactement 0 (zéro).
Exemple : ( cos ( / pi 2 ) ) renvoie : 6.12323e-017 ce qui mis en texte donne : 0.00000000000000006, ce n'est pas donc pas zéro et ça suffit au logiciel pour ne pas renvoyer "erreur : division par zéro", mais on peut le vérifier encore différemment :
( null ( cos ( / pi 2 ) ) ) renvoie nil, ce qui signifie que le résultat de cette opération n'est pas strictement égal à 0 (zéro), et c'est bien la preuve que je cherchais.
Et quid de la tangente de cet angle ? ( tan ( / pi 2 ) )
Le résultat de cette opération devrait renvoyer un nombre qui n'existe pas, c'est l'infini, en effet la tangente de cet angle est l'infini puisqu'elle est parallèle à la droite de direction "pi divisé par deux", et bien la tangente renvoyée vaut : 1.63312e+016 ce qui n'est pas l'infini, le vrai, mais passe pour tel auprès du logiciel et permet d'utiliser ce nombre pour faire des opérations.
6 décembre 2017,
mise à jour le 15 décembre 2017
mise à jour le 22 novembre 2019
mise à jour (mise en page) le 24 mai 2021