Zeichenbereich (Canvas)


In p5.js legen wir beim Programmstart den Bereich fest, in dem unser Programm ablaufen soll.

createCanvas(300, 500);

Mit diesem Befehl wird ein Zeichenbereich mit der Breite 300 Pixel und der Höhe 500 Pixel festgelegt. Innerhalb dieses Zeichenbereichs können wir jetzt Objekte platzieren. Dazu müssen wir die Koordinaten des gewünschten Ortes angeben.

Mit Hilfe der Maus kannst du die Koordinaten des Zeichenbereichs erkunden.

Aufgabe

Bewege die Maus auf dem Zeichenbereich.

An diesem Beispiel kannst du den Unterschied zwischen der Funktion setup(...) und der Funktion draw(...) studieren.

Aufgabe

Lösche background(240); aus draw(...) und füge diese Zeile in setup(...) unterhalb von createCanvas(...); ein. Klicke auf Play und beobachte.

Lösung

Wenn du die Maus über den Zahlenbereich bewegst, sind die Koordinaten bald nicht mehr lesbar, da alle Ziffern übereinander geschrieben werden, ohne die alten Ziffern zu löschen.

Erklärung: Wenn background(240); am Anfang von draw(...) steht, wird die Zeichenfläche mit der Farbe, die bei background(...); in Klammern steht übermalt. Die Zeichenfläche wird damit also gelöscht. Steht background(240); aber in setup(...), wird die Zeichenfläche nur am Anfang des Programms einmal gelöscht und danach werden alle Ziffern übereinandergeschrieben.

Jetzt solltest du den Programmablauf verstanden haben. In setup(...) wird der Zeichenbereich festgelegt. In draw(...) wird 60 Mal pro Sekunde der Zeichenbereich neu eingefärbt, geschaut, wo die Maus gerade ist und die aktuelle Position mit Hilfe zweier Zahlen auf dem Bildschirm ausgegeben.

Wenn du alles in setup(...) schreibst, wird nur die Startposition 0 0 ausgegeben, auch wenn du die Maus bewegst, da setup(...) nur ein einziges Mal ausgeführt wird.


Dynamische Positionsanzeige

Die Koordinaten sollen jetzt dort angezeigt werden, wo die Maus auch ist.

Aufgabe

Bewege die Maus auf dem Zeichenbereich und versuche das Programm zu verstehen.

Erklärung: Das Programm gibt nicht nur die Mauskoordinaten aus, sondern schreibt diese auch an die Stelle, wo sich die Maus gerade befindet. Die x-Koordinate und y-Koordinate der Textausgabe müssen passend eingestellt werden.


Koordinatensystem

Wie du gesehen hast, ist im Zeichenbereich, der mit dem Befehl createCanvas(breite, hoehe); festgelegt wird, oben links der Nullpunkt P(0/0) des Koordinatensystems. Die x-Koordinate wird nach rechts größer und die y-Koordinate wird nach unten größer.

Man kann ein Koordinatensystem in den Zeichenbereich zeichnen, das helfen kann die richtige Position für Objekte zu finden, die auf die Zeichenebene gemalt werden sollen. Du brauchst hier sicherlich noch nicht die Programmierung des Koordinatensystems verstehen, betrachte die Funktion koordinatensystem(...) als eine Hilfsfunktion, genauso wie die Funktionen aus der p5.js-Bibliothek.


Geometrische Grundformen

Im folgenden siehst du, wie die geometrischen Grundformen Punkt, Kreis, Dreieck, Viereck,... mit Hilfe von p5.js gezeichnet werden können. In der Zeicheneben ist das Koordinatensystem eingezeichnet, damit du die Positionierung der Objekte besser beobachten kannst.

Aufgabe

Verändere in den folgenden Beispielen die Koordinaten der geometrischen Grundformen und füge neue ein.


Punkt

point(x1, y1);

An der Koordinate P(x1/y1) wird ein Punkt gezeichnet.


Strecke

line(x1, y1, x2, y2);

Vom Punkt P(x1/y1) wird eine Strecke zum Punkt Q(x2/y2) gezeichnet.


Dreieck

triangle(x1, y1, x2, y2, x3, y3);

Durch die Punkte A(x1/y1), B(x2/y2), C(x3/y3) wird ein Dreieck gezeichnet.


Rechteck

rect(x1, y1, breite, hoehe);

Der Punkt A(x1/y1) ist der obere linke Punkt. Von dort aus wird das Rechteck nach rechts (breite) und nach unten (hoehe) gezeichnet.


Viereck

quad(x1, y1, x2, y2, x3, y3, x4, y4);

Durch die Punkte A(x1/y1), B(x2/y2), C(x3/y3) und D(x4/y4) wird ein Viereck gezeichnet.


Kreis und Ellipse

ellipse(x, y, breite, hoehe);

Um den Mittelpunkt M(x/y) wird eine Ellipse mit der angegebenen Breite und Höhe gezeichnet. Um einen Kreis zu zeichnen, muss die Breite und die Höhe gleich sein.


Kreisbogen

arc(x, y, breite, hoehe, startwinkel, endwinkel, modus);

Um den Mittelpunkt M(x/y) wird eine Ellipse mit der angegebenen Breite und Höhe gezeichnet. Die Ellipse startet beim Startwinkel und endet beim Endwinkel (diese werden im Bogenmass 0 = 0°, PI/4 = 90°, PI/2 = 180°, 3 PI/2 = 270°, 2 PI = 360° angegeben) und ganz unmathematisch im Uhrzeigersinn gezeichnet.

Modus:

  • keine Angabe = die Enden der Kreislinie werden ohne Begrenzungslinie mit dem Mittelpunkt verbunden,
  • PIE = die Enden der Kreislinie werden mit einer Begrenzungslinie mit dem Mittelpunkt verbunden,
  • OPEN = die Enden der Kreislinie werden ohne Begrenzungslinie miteinander verbunden,
  • CHORD = die Enden der Kreislinie werden mit einer Begrenzungslinie miteinander verbunden.