3.6.9 math.inc

Ce fichier contient de nombreuses macros et fonctions mathématiques générales.

3.6.9.1 Les fonctions et macros numériques

even(N). Test si N est pair, renvoie 1 pour vrai, 0 pour faux.
Paramètres :


odd(N). Test si N est impair, renvoie 1 pour vrai, 0 pour faux.
Paramètres :


Interpolate(GC, GS, GE, TS, TE, Method). Macro d'interpolation entre les valeurs numériques TS et TE. La méthode d'interpolation est cosinoïdale, linéaire ou exponentielle. La position où est évaluée l'interpolation est déterminée par la position de GC dans la fourchette GS - GE. Voir l'exemple.
Paramètres :

Exemple :

#declare A = Interpolate(0.5, 0, 1, 0, 10, 1);
#debug str(A, 0, 2)
// result A = 0.50
#declare A = Interpolate(0.0,-2, 2, 0, 10, 1);
#debug str(A, 0, 2)
// result A = 0.50
#declare A = Interpolate(0.5, 0, 1, 0, 10, 2);
#debug str(A, 0, 2)
// result A = 0.25

Mean(A). Calcule la moyenne d'un tableau de valeurs.
Paramètres :


Std_Dev(A, M). Déviation standard.
Paramètres :


GetStats(ValArr). Cette macro déclare un tableau global appelé "StatisticsArray" contenant : N, Mean, Min, Max, et Standard Deviation
Paramètres :


Histogram(ValArr, Intervals). Cette macro déclare un tableau 2D global appelé "HistogramArray". La première valeur du tableau est le centre de l'intervalle, la seconde est le nombre de valeurs dans cet intervalle.
Paramètres :


sind(v), cosd(v), tand(v), asind(v), acosd(v), atan2d(a, b). Versions de fonctions trigonométriques utilisant les degrés comme unités d'angle.
Paramètres :
Les mêmes que pour la fonction intégrée analogue trig.


max3(a, b, c). Trouve le plus grand des trois nombres.
Paramètres :


min3(a, b, c). Trouve la plus petite des trois valeurs.
Paramètres :


f_sqr(v). Carré d'un nombre.
Paramètres :


sgn(v). Le signe du nombre. Renvoie -1 ou 1 selon le signe de v.
Paramètres :


clip(V, Min, Max). Limite une valeur dans une fourchette spécifique, si elle sort de la fourchette, elle est coupée. Les valeurs en entrée plus grandes que Max donneront Max, celles plus petites que Min donneront Min.
Paramètres :


clamp(V, Min, Max). Limite une valeur dans une fourchette spécifique, si elle sort de cet espace, elle est ramenée, tournant autour. Tandis que l'entrée croît ou décroît en dehors de la fourchette donnée, la sortie sera répétivement renvoyée dans cette fourchette, donnant une onde dentelée.
Paramàtres :


adj_range(V, Min, Max). Ajuste les valeurs en entrée dans une fouchette [0, 1] vers une fourchette donnée. Une valeur en entrée de 0 donnera Min, 1 donnera Max, et les valeurs en-dehors de [0, 1] seront extrapolées linéairement (le graphe se poursuivra en ligne droite).
Paramètres :


adj_range2(V, InMin, InMax, OutMin, OutMax). Comme f_range(), mais l'ajustement se fait de la fourchette [InMin, InMax] à la fourchette [OutMin, OutMax].
Paramètres :

3.6.9.2 Les fonctions et macros vectorielles

Ce sont des macros dans la version actuelle parce que les fonctions ne peuvent pas prendre des paramètres vectoriels, mais cela peut changer dans le futur.


VSqr(V). Elève au carré chaque composant d'un vecteur, équivalent à V*V.
Paramètres :


VPow(V, P), VPow5D(V, P). Elève chaque composant d'un vecteur à une puissance donnée.
Paramètres :


VEq(V1, V2). Teste l'égalité entre vecteurs, renvoie vrai si les trois composants de V1 sont égaux à chaque composant respectif de V2.
Paramètres :


VEq5D(V1, V2). Une version 5D de VEq(). Test l'égalité de vecteurs, renvoie vrai si les cinq composants de V1 sont égaux aux composants respectifs de V2.
Paramètres :


VZero(V). Test pour un vecteur <0, 0, 0>.
Paramètres :


VZero5D(V). Test pour un vectreur <0, 0, 0, 0, 0>.
Paramètres :


VLength5D(V). Calcule la longueur d'un vecteur 5D.
Paramètres :


VNormalize5D(V). Normalise un vecteur 5D.
Paramètres :


VDot5D(V1, V2). Calcule le produit vectoriel de deux vecteurs 5D. Voir vdot() pour plus d'informations sur les produits vectoriels.
Paramètres :


VCos_Angle(V1, V2). Calcule le cosinus de l'angle entre deux vecteurs.
Paramètres :


VAngle(V1, V2), VAngleD(V1, V2). Calcule l'angle entre deux vecteurs. VAngle() renvoie l'angle en radians, VAngleD() en degrés.
Paramètres :


VRotation(V1, V2, Axis), VRotationD(V1, V2, Axis). Calcul l'angle de rotation de V1 à V2 autour de Axis. Axis doit être perpendiculaire à V1 et V2. La sortie doit être dans la fourchette entre -pi et pi radians ou entre -180 degrés et 180 degrés si vous utilisez la version en degrés. Toutefois, si Axis est à <0, 0, 0> la sortie sera toujours positive ou nulle, vous aurez le même résultat avec la macro VAngle().
Paramètres :


VDist(V1, V2). Calcule la distance entre deux points.
Paramètres :


VPerp_To_Vector(V). Trouve un vecteur perpendiculaire au vecteur donné.
Paramètres :


VPerp_To_Plane(V1, V2). Trouve un vecteur perpendiculaire aux deux vecteurs donnés. En d'autres termes perpendiculaire au plan défini par les deux vecteurs en entrée.
Paramètres :


VPerp_Adjust(V1, Axis). Trouve un vecteur perpendiculaire à Axis et dans le plan de V1 et Axis. En d'autres termes, le nouveau vecteur est une version de V1 ajusté pour être perpendiculaire à Axis.
Paramètres :


VProject_Plane(V1, Axis). Projète le vecteur V1 sur le plan défini par Axis.
Paramètres :


VProject_Axis(V1, Axis). Projète le vecteur V1 sur l'axe défini par Axis.
Paramètres :


VMin(V), VMax(V). Trouve le plus petit ou le plus grand composant d'un vecteur.
Paramètres :


VWith_Len(V, Len). Crée un vecteur parallèle à un vecteur donné mais avec une longueur donnée.
Paramètres :

3.6.9.3 L'analyse vectorielle

SetGradientAccuracy(Value): toutes les macros suivantes utilisent une constante appelée '__Gradient_Fn_Accuracy_' pour une approximation numérique des dérivées. Cette constante peut être changée avec la macro, la valeur par défaut est 0.001.


fn_Gradient(Fn): macro calculant le gradiant d'une fonction comme une fonction.
Paramètres :

Sortie : la longueur du gradiant comme fonction.


fn_Gradient_Directional(Fn, Dir): macro calculant le gradiant d'une fonction dans une direction comme une fonction.
Paramètres :

Sortie : le gradiant dans cette direction comme fonction.


fn_Divergence(Fnx, Fny, Fnz): macro calculant la divergence d'une fonction (vectorielle) comme fonction.
Paramètres :

Sortie : la divergence comme fonction.


vGradient(Fn, p0): macro calculant le gradiant d'une fonction comme expression vectorielle.
Paramètres :

Sortie : le gradiant comme fonction vectorielle.


vCurl(Fnx, Fny, Fnz, p0): macro calculant la courbe d'une fonction (vectorielle) comme expression vectorielle.
Paramètres :

Sortie : la courbe comme expression vectorielle.


Divergence(Fnx, Fny, Fnz, p0): macro calculant la divergence d'une fonction (vectorielle) comme expression numérique.
Paramètres :

Sortie : la divergence comme expression numérique.


Gradient_Length(Fn, p0): macro calculant la longueur d'un gradiant d'une fonction comme expression numérique.
Paramètres :

Sortie : la longueur du gradiant comme expression numérique.


Gradient_Directional(Fn, p0, Dir): macro calculant le gradiant d'une fonction dans une direction comme expression numérique.
Paramètres :

Sortie : le gradiant dans cette direction comme expression numérique.

3.6.8 glass.inc, glass_old.inc 3.6.8 glass.inc, glass_old.inc 3.6.10 metals.inc, golds.inc 3.6.10 metals.inc, golds.inc