A quoi ça sert?
Si dans vos calculs de trigo, vous calculez la tangente d'un angle, et que vous cherchez la valeur de cet angle, c'est la fonction Arctangente qu'il faut utiliser. Arctangente est la fonction inverse de la fonction tangente.
La variable globale d'entrée est ARCTAN_IN, cette de sortie ARCTAN_OUT.
Ce script s'exécute en une seule frame, pas de boucle while, donc assez rapide.
ATTENTION, l'angle à la sortie est exprimé en RADIAN!
begin VZ_ARCTAN_script ;====================== ;ARCTAN, par Von Zeeple (Wiwiland) ;====================== float PI2;Pi / 2 float PI4;Pi / 4 float p0 float p1 float p2 float p3 float p4 float q0 float q1 float q2 float q3 float q4 float P float Q float x float x2 float in float out set PI2 to 1.5707 set PI4 to 0.7853 set p0 to 896.7859 set p1 to 1780.4063 set p2 to 1153.029 set p3 to 268.4254 set p4 to 16.1536 set q0 to 896.7859 set q1 to 2079.3349 set q2 to 1666.7838 set q3 to 536.265 set q4 to 58.9569 set in to ARCTAN_IN ;ATTENTION, ARCTAN_OUT en Radian ;=============================================== ;Découpage de la fonction pour une meilleur approximation ;============================================ if ( in > 0 ) if ( in > 2 ) set x to ( 1 / in ) else set x to in endif else if ( in < -2 ) set x to ( 1 / in ) else set x to in endif endif ;==================================== ;Calcul de Arctan ( approximant de Padé ) ;===================================== set x2 to ( x * x ) ;P = ( ( ( (p4*x2 + p3)*x2 + p2) *x2 + p1) *x2 + p0) set P to ( ( p4 * x2 + p3) * x2 ) set P to ( ( P + p2 ) * x2 ) set P to ( ( P + p1 ) * x2 ) set P to ( P + p0 ) ;Q = ( ( ( ( (x2 + q4)*x2 + q3) *x2 + q2)*x2 + q1) *x2 + q0) set Q to ( ( x2 + q4 ) * x2 ) set Q to ( ( Q + q3 ) * x2 ) set Q to ( ( Q + q2 ) * x2 ) set Q to ( ( Q + q1 ) * x2 ) set Q to ( Q + q0 ) set out to ( ( P / Q ) * x ) ;================= ; Rassemblage ;===================== if ( in > 0 ) if ( in > 2 ) set out to ( PI2 - out ) else set out to out endif else if ( in < -2 ) set out to ( -PI2 - out ) else set out to out endif endif set ARCTAN_OUT to out ;stopscript "VZ_ARCTAN_script" end