Created: 2017-01-31 mar. 00:15
p5.js est une librairie (ou une bibliothèque) javascript
= une "brique" logicielle ajoutée à un navigateur web
$('h2').each(function(d){$(this).animate({transform:'rotate(-180deg)'});})
function setup(){ // le code exécuté par la fonction est entre deux accolades // les lignes qui commencent par deux "//" sont des commentaires }
Remarque :
function setup(){ // executé une fois au lancement de l'application createCanvas(700, 200); } function draw(){ // executé en boucle tant que l'application tourne }
function setup(){ // executé une fois au lancement de l'application createCanvas(700, 200); } function draw(){ // executé en boucle tant que l'application tourne background(100); }
Figure 1: Système de coordonnées dans p5.js
Un lien openprocessing pour tester
function draw(){ background(); rect(50, 25, 100, 150); ellipse(250, 100, 75, 75); }
Cette fois, on exécute des fonctions qui ont été définies ailleurs.
setup = function() { createCanvas(1100, 200); }; draw = function() { background(255, 100, 0); // rectangle noStroke(); fill(0, 255, 0); rect(50, 25, 100, 150); // cercle fill(0, 100, 255); stroke(255, 255, 0); strokeWeight(5); ellipse(350, 100, 75, 75); };
draw = function() { background(255, 100, 0); // rectangle noStroke(); fill(0, 255, 0); rect(50, 25, 100, 150); // cercle fill(0, 100, 255); stroke(255, 255, 0); // <- trois paramètres strokeWeight(5); ellipse(350, 100, 75, 75); // niveaux de gris fill(100) // <- un seul paramètre = niveau de gris stroke(255); // <- un seul paramètre strokeWeight(5); ellipse(600, 100, 75, 75); // transparence fill(255, 0, 150, 150) // <- quatre paramètres = opacité noStroke(); ellipse(850, 100, 100, 100); fill(0, 255, 150, 150) // <- quatre paramètres ellipse(890, 120, 100, 100); };
Figure 2: RGB vs. HSB
function setup() { createCanvas(900, 100); colorMode(HSB, 100); }; function draw() { background(50); noStroke(); for (var i = 0 ; i<10 ; i++){ fill(i*10, 100, 100); ellipse(100 + i*75, 50, 75, 75); } };
Dans le document Reference de p5.js
setup = function() { createCanvas(1100, 200); background(100); }; draw = function() { ellipse(mouseX, mouseY, 20, 20); }; mousePressed = function() { // nouvelle fonction à déclarer ! background(250,0,0); }; mouseReleased = function() { // nouvelle fonction à déclarer ! background(100); };
var c; // déclaration de la variable c setup = function() { createCanvas(1100, 200); colorMode(HSB, 100); c = 50; // affectation de la valeur 50 }; draw = function() { background(c, 100, 100); }; mousePressed = function(){ c = random(0, 100); // <- nouvelle fonction ! }
Garder en mémoire des données pour le réutiliser
On ne déclare pas le type des variables en javascript, ce qui ne veut pas dire que ça n'a pas d'importance !
var cercle = {x: 550, y: 100, rayon: 50} setup = function() { createCanvas(1100, 200); background(100); }; draw = function() { ellipse(cercle.x, cercle.y, cercle.rayon); };
Faire se dépacer un objet
var a = 10; var b = 5; if (a > b){ // le code ici est exécuté si a est supérieur à b }
Ne pas confondre
var a = 0;
if (a == 50){
}
qu'on appelle l'"opérateur de test d'égalité"
if (a != 50){
}
var a = random(0,10); if (a > 70){ // faire un truc }else if (a < 30){ // faire un autre truc }else{ // <- si a est compris entre 30 et 70 // faire encore un autre truc }
Faire rebondir une balle