Les 13b - roteren & opacity


Hieronder de code uit de tweede les:


let vier,vier2;
function setup() {
  //bepaal op welke manier rotate roteert
  angleMode(DEGREES);

  //bepaal hoe de rectangle getekend wordt
  rectMode(CENTER)
  createCanvas(windowWidth,windowHeight);
  background(255);

  //maak twee vierkanten
  vier = new Vierkant();
  vier2 = new Vierkant();
}

function draw() {
  //plaats hier de code die continue herhaald moet worden.
  background(249,20);

  //teken de vierkanten
  vier.teken();
  vier2.teken();
}

class Vierkant {
  constructor() {
    //bepaal de x, y, size, 
    this.x = random(100,width);
    this.y = random(100,height);
    this.s = random(50,100);
    //bepaal de rotation-positie (0ΒΊ - 360ΒΊ)
    //en snelheid
    this.r = random(360)
    this.rSpeed = random(0.1,5);
    //bepaal de noise-positie
    //en snelheid
    this.n = 0;
    this.nSpeed = random(0.0001,0.01);

    //bepaal de opacity
    this.alpha = 255;
  }
  teken() {
    //vul de rectangle en de stroke-kleur
    //opacity wordt langzaam minder
    fill(0,this.alpha--);
    stroke(0,this.alpha)

    //alles tussen push() en pop() wordt als canvas binnen
    //het canvas gezien.
    push();

    //creeΓ«r een nieuw nulpunt (in plaats van linksbovenin)
    translate(this.x*noise(this.n),this.y);
    //roteer relatief aan dat nieuwe nulpunt
    rotate(this.r+=this.rSpeed);
    //plaats het vierkant relatief aan dat nieuwe nulpunt
    rect(0,0,this.s);
    //tel nSpeed op bij de n-variabele
    this.n += this.nSpeed;
    pop();
    //kijk goed naar de reference om te begrijpen 
    //hoe noise, rotate, pop en push werken.
  }
}