Trinn 10

Skolekoding.no > Tekst-koding > p5.js > NOC trinn for trinn


Forslag til løsning av oppgave 9

  • let ax, ay, bx, by;
  • let pencil_x, pencil_y; // Pennens koordinater
  • let angleA, angleB;
  • let speedA, speedB;
  • let track = []; // Tabell
  • let AoverB; // Hastigheten til A i forhold til B
  • let speedAdjust; 
  • let v; // Vektor med pennens koordinater
  • function setup() {
    • createCanvas(400, 400);
    • noFill();
    • angleA = 0.0;
    • angleB = 0.0;
    • // Endre teller og nevner for å få andre mønstre
    • AoverB = 4 / 3; 
    • // Hastigheten må nedjusteres
    • speedAdjust = 0.05;
    • speedA = AoverB * speedAdjust;
    • speedB = 1 * speedAdjust;
  • }
  • function draw() {
    • background(220);
    • strokeWeight(1);
    • ellipse(100, 100, 100);
    • ellipse(300, 300, 100);
    • ax = 100 + cos(angleA) * 50;
    • ay = 100 + sin(angleA) * 50;
    • bx = 300 + cos(angleB) * 50;
    • by = 300 + sin(angleB) * 50;
    • pencil_x = bx;
    • pencil_y = ay;
    • strokeWeight(1);
    • line(ax, ay, pencil_x, pencil_y); // Vannrett
    • line(bx, by, pencil_x, pencil_y); // Loddrett
    • v = createVector(pencil_x, pencil_y);
    • track.push(v); // Legg til v sist i tabellen
    • if (track.length > 800) {
      • track.splice(0, 1); // Tar bort 1 celle fra og med celle [0]
    • }
    • for (i = 0; i < track.length; i++) {
      • strokeWeight(1);
      • point(track[i].x, track[i].y);
    • }
    • strokeWeight(4);
    • point(ax, ay);
    • point(bx, by);
    • point(pencil_x, pencil_y);
    • angleA = angleA + speedA;
    • angleB = angleB + speedB;
  • }

Oppgave 10

A) Skriv den aktuelle brøken på lerretet slik som hos Roger Antonsen
B) Hva med å generere tilfeldige verdier  for teller og nevner når venstre museknapp trykkes?
C) Eller hva med å legge inn glidebrytere for å velge verdier for teller og nevner?

Klikk her for å få hint


Disse 10 oppgavene kan løses på mange andre måter enn
de som er presentert her, f. eks. med objekter eller med
dobbel løkke med x og y i stedet for vektor. Her er ingen fasit 🙂
Her er en litt annen versjon som bruker objekter.

Les mer om objekter i p5.js her.
Objekter forklart på processing.org oversatt til norsk.


skolekoding.no
Stein Olav Kivle