Lesen Sie zunächst auf der Übersichtsseite
Analytische Flächen
die Definition einer Expliziten Fläche durch!
Charakteristisch ist hier vor allem die Eigenschaft, dass die x- und y-Werte der Bildpunkte im Raum
genau den x- und y-Werten der Definitionsmenge entsprechen:
Die Funktion g ordent allen Punkten der ebenen Definitionsmenge genau einen Wert g(x,y) = z zu.
Eine explizite Fläche kann man sich anschaulich so vorstellen:
Um die Anwendungen auch mit einem Smartphone zu nutzen, wurden hier einige virtuelle Tasten
verwendet. Mit deren Hilfe kann man beispielsweise die Flächen um alle drei Achsen rotieren lassen.
Um die Raumpunkte zu berechnen, benutzt man eine doppelte Schleife, die über alle Gitterpunkte läuft.
Die x- und y-Werte muss man noch durch den map-Befehl anpassen. Da man den Abstand des Gitterpunktes
vom Ursprung für die Farbgebung gut gebrauchen kann, wird der Wert hier in r gespeichert.
Unter switch legen wir die Gegebenheiten für die z-Werte ab. Im nachfolgenden Sketch
haben Sie neun Wahlmöglichkeiten.
Tasten- oder Mausaktion | Wirkung |
---|---|
Taste w | nächste Fläche |
Taste x | Drehung x-Achse start/stopp |
Taste y | Drehung y-Achse start/stopp |
Taste z | Drehung z-Achse start/stopp |
Tasten g | Gitterlinien anzeigen |
Tasten + | zoom in |
Taste s | Hintergrund schwarz/weiß |
Taste a | Anzahl der Gitterpunkte erhöhen |
Taste A | Anzahl der Gitterpunkte verringern |
in das Bild klicken | zoom out |
Bitte beachten: Je größer die Anzahl der Gitterpunkte, desto langsamer die Drehungen.
In folgendem Bild (Vergrößerung von Funktion 3) sehen Sie, dass die Anzahl der Gitterpunkte die Genauigkeit
der Darstellung einer expliziten Fläche ganz wesentlich bestimmt.
Auch starke Vergrößerungen, wie im nächsten Bild (Funktion 5 Unterseite), bergen mitunter einige Überraschungen.
Hier etwa bekommt man bei großer Anzahl von Gitterpunkten Strukturen zu sehen, die bei geringer Auflösung
"glatt gebügelt" wurden.
Um Grids zu zeichnen, verwenden wir die im Lehrbuch im 14. Kapitel erläuterte Methode:
pg.beginShape(QUAD_STRIP); //oder: pg.beginShape(TRIANGLE_STRIP);}
for (int ix = 0; ix < anzahlX+1; ix++) {
quadsFaerben(ix,iy);}
pg.vertex( punkte[ix][iy].x , punkte[ix][iy].y , punkte[ix][iy].z );
pg.vertex(punkte[ix][iy+1].x , punkte[ix][iy+1].y , punkte[ix][iy+1].z );
pg.endShape();