noise()¶
La fonction noise() est intéressante en cela qu’elle ressemble au wiggle dans la proximité des valeurs consécutives en sortie : on a donc un bruit « naturel ».
L’avantage sur le wiggle est que la fonction prend en entrée une suite de nombre consécutive et que la même suite en entrée renverra toujours le même bruit.
Observez la figure suivante qui exploite aussi bien le mot-clé index
que la fonction noise
.
Si le simple usage du wiggle ne permet pas une cohérence de tous les éléments, il est assez facile de l’obtenir avec noise
:
version courte¶
à placer sur la position d’une suite de calque comme précédemment
var x = transform.position[1] + Math.cos ( index * Math.PI / 6 ) * ( index * 25 ) + noise ( time * 2 + index/25 + 200 ) * 50;
var y = transform.position[0] + Math.sin ( index * Math.PI / 6 ) * ( index * 25 ) + noise ( time * 2 + index/25 ) * 50;
[x,y]
version commentée¶
à placer sur la position d’une suite de calque comme précédemment
/* le rayon indexé sur la position du calque
va produire une spirale de points */
var rayon = index * 25;
// on divise le cercle en 12
var division_angulaire = 2 * Math.PI / 12;
// on calcule l'angle selon l'index
var angle = index * division_angulaire;
// vitesse du bruit
var vitesse_bruit = 2
// on calcule les coordonnées sur le cercle
var coordonnees_x = Math.cos ( angle ) * rayon;
/* le bruit a un décalage basé sur l'index
(divisé par 25 afin d'éviter un trop grand décalage) */
var bruit_x = noise ( time * vitesse_bruit + index / 25 ) * 50;
/* on va décaler la valeur fournie à noise
pour éviter d'avoir le même bruit en x et y */
var decalage = 200;
// idem qu'en x
var coordonnees_y = Math.sin ( angle ) * rayon;
/* idem qu'en y mais avec un décalage
de la valeur en entrée */
var bruit_y = noise ( time * vitesse_bruit + index / 25 + decalage ) * 50;
var x = transform.position[0] + coordonnees_x + bruit_x;
var y = transform.position[1] + coordonnees_y + bruit_y;
[x,y]