Utilisation
L'entrée est une formule mathématique utilisant les variables x, y, z et t. La sortie est une couleur décimale.
La couleur décimale est un nombre entre 0 et 16777215 (ou #FFFFFF). Les couleurs r, g, b sont des nombres entre 0 et 255. Les angles sont en radians.
Les images importées sont automatiquement réduites à une taille de 8x8 pixels.
Formule
La formule doit retourner une couleur pour chaque point (x,y,z,t) avec :
- x : profondeur x ∈ [0;7] (x=0 devant)
- y : largeur y ∈ [0;7] (y=0 à gauche)
- z : hauteur z ∈ [0;7] (z=0 en haut)
- t : index de la frame t ∈ [0;tMax[
- img(x,y,f) : Couleur du pixel en (x,y) de la fᵉ image importée
Conseils
- La partie f(x,y,z,t)= n'est pas utile et peut être retirée.
- Ajoutez autant d'espaces que vous souhaitez, le résultat sera le même (retour à la ligne compris).
- Pour accélerer le traitement priorisez les valeurs constantes : x*(3/2) au lieu de 3*x/2.
- Par défaut tMax correspond au nombre d'images, mais vous pouvez le modifier en fonction de votre animation.
- La fonction img(x,y,f) autorise les points (x,y) invalides (retourne 0). En revanche f doit être compris entre 0 et le nombre d'images importées.
- Si vous n'utilisez pas d'images, une formule sans la fonction img() est valide
- La couleur des vaguelettes indique si la formule est incomplette (blanc) ou erronée (orange).
- Pour voir comment la commande est interprétée, naviguez à travers les éléments span générés dans l'inspecteur html.
Opérations élémentaires : +, -, *, /, %
Comparaison : ==,
!=, >, >=, <, <=,
&&, ||
Manipulation binaire :
<<, >>, &, |, ^
Opérateurs spéciaux
- Hexadécimal :
#nombre,0xnombre - Binaire :
0bnombre
Fonctions mathématiques
Toutes les fonctions de
Math (objet JavaScript) sont disponibles.| Nom | Description |
|---|---|
| max(a, b) | Maximum entre a et b |
| min(a, b) | Minimum entre a et b |
| minmax(min, x, max) | Un nombre dans l'intervalle [min;max], x ou limite |
| range(min, x, max) | Vrai si x est dans l'intervalle [min;max], Faux sinon |
| abs(x) | Valeur absolue |
| sqrt(x) | Racine carrée |
| pow(x, n) | Puissance |
| exp(x) | Exponentielle |
| round(a) | Arrondi à l'entier le plus proche |
| floor(a) | Arrondi à l'entier inférieur |
| ceil(a) | Arrondi à l'entier supérieur |
| random() | Nombre aléatoire entre 0 et 1 |
| pi() | Valeur de PI à 6 décimales |
| cos(a) | Cosinus |
| sin(a) | Sinus |
| tan(a) | Tangente |
| acos(a) | Arc Cosinus |
| asin(a) | Arc Sinus |
| atan(a) | Arc Tangente |
| modulo(a,b) | Modulo différent de a%b car les nombres négatifs sont augmentés (i.e. -1%10==-1 et modulo(-1,10)==9) |
| angle_complexe(x, y) | Angle de rotation d'un nombre complexe / d'un point par rapport à (1,0) |
Fonctions de construction
| Nom | Description |
|---|---|
| triangle(x, x0, y0, pente)) | Fonction triangle avec un sommet en (x0,y0) et un facteur de pente |
| distance(a, b)) | sqrt(a²+b²) |
| heaviside(t) | Fonction Heaviside : 0 sur ]-inf;0[ et 1 sur ]0;+inf[ |
| porte(t, t1, t2)) | Fonction porte : identique à range(min,x,max) |
| pente_cosale(t) | Fonction f(t>=0)=t et f(t<=0)=0 |
Fonctions de couleur
| Nom | Description |
|---|---|
| rgb(r, g, b)) | Associe les couleurs pour former une couleur décimale |
| red(c) | Extrait la quantité de rouge (entre 0 et 255) de la couleur |
| green(c) | Extrait la quantité de vert (entre 0 et 255) de la couleur |
| blue(c) | Extrait la quantité de bleu (entre 0 et 255) de la couleur |
| huerotate(c, angle)) | Rotation de la couleur décimale avec un angle de rotation (en radian) |
| lumiere(c, lumiere)) | Change le taux de luminosité de la couleur (1 = ne change pas) |
Autres Fonctions
| Nom | Description |
|---|---|
| set(nom, valeur) | Définit une variable avec une valeur (retourne 0) |