deutsch     english     français     Drucken

 

3.1 KOORDINATEN

 

 

EINFÜHRUNG

 

Du hast mit der Turtle bereits erste Erfahrung mit dem Zeichnen auf dem Computer gemacht. Allerdings hat die Turtlegrafik ihre Grenzen und so wirst du hier flexiblere Möglichkeiten für die Grafikausgabe kennenlernen.

PROGRAMMIERKONZEPTE: Koordinatengrafik, Kartesisches Koordinatensystem

 

 

DAS GRAFIKFENSTER ÖFFNEN

 

Die Bibliothek (bzw. das Fenster für die Grafikausgabe) heisst GPanel. In TigerJython ist diese Bibliothek zwar bereits installiert, du musst aber trotzdem angeben, dass du das GPanel verwenden möchtest und beginnst daher dein Programm mit einem import. Danach erzeugst du mit makeGPanel() ein neues Grafikfenster:

from gpanel import *
makeGPanel(-3, 7, -4, 6)

Soweit macht das Programm noch nichts spannendes, sondern zeigt lediglich ein leeres Fenster, das du wieder schliessen kannst. Dein GPanel-Fenster ist immer quadratisch und verwendet ein x-y-Koordinatensystems, so wie du es aus der Mathematik kennst:

Mit den vier Zahlen -3, 7 -4, 6 wählst du den x- und y-Koordinatenbereich. -3 ist die x-Koordinate am linken Rand, 7 ist die x-Koordinate am rechten Rand, -4 ist die y-Koordinate am unteren Rand und 6 ist die y-Koordinate am oberen Rand.

 

 

MEMO

 
Mit makeGPanel() wird ein Fenster erzeugt. Dabei gibst du mit vier Zahlen den gewünschten Bereich des Koordinatensystems an:
makeGPanel(xmin, xmax, ymin, ymax)
Du kannst als ersten Parameter auch zusätzlich einen Fenster-Titel angeben:
makeGPanel(title, xmin, xmax, ymin, ymax)

 

 

LINIEN ZEICHNEN

 

Nachdem das Fenster offen ist, kannst du nun nach Belieben darin zeichnen. Dafür gibt es eine Reihe von nützlichen Funktionen. Mit line() lässt sich z. B. eine Linie zeichnen, mit setColor() änderst du die Farbe. Damit kannst du beispielsweise ein buntes Dreieck zeichnen.

Bei jeder Linie gibst du zuerst x- und y-Koordinaten des Startpunkts an, dann die x- und y- Koordinaten des Endpunkts. Die Eckpunkte sollen folgende Koordinaten haben: (1, -1) (5, -1) (3, 3). Du siehst das Dreieck aber natürlich nur, wenn du das Koordinatensystem passend wählst. Unverzerrte Zeichnungen ergeben sich aber nur, wenn das Koordinatensystem in x- und y-Richtung gleich lang ist.

 

 

from gpanel import *

makeGPanel("My window", 0, 6, -2, 4)

lineWidth(3)
setColor("red")
line(1, -1, 5, -1)
setColor("green") line(5, -1, 3, 3) setColor("blue") line(3, 3, 1, -1)
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

 

 

MEMO

 

Die Breite der Linie stellst du mit der Funktion lineWidth() ein, wobei du die Breite in Pixeln angibst.

 

 

KREISE UND RECHTECKE

 

GPanel kann nicht nur Linien, sondern auch Kreise, Ellipsen, Rechtecke, Dreiecke und Kreisbögen zeichnen und sogar Texte ausschreiben. Mit dem Befehl fillCircle(radius) kannst du einen gefüllten Kreis zeichnen. Bevor du aber einen Kreis zeichnest, musst du den Grafikcursor mit move(x, y) positionieren, um den Mittelpunkt festzulegen.

fillRectangle(länge, breite) zeichnet ein Rechteck, dessen Mittelpunkt an der Position des Grafikcursors liegt. In unserem Beispiel zeichnen wir mit einer while-Schleife mehrere Quadrate und Kreise.

 

 

from gpanel import *

makeGPanel(0, 20, 0, 20)

setColor("red")
x = 2
y = 2
while y < 20:
    move(x, y)
    fillCircle(1)
    move(x, 20 - y)
    fillRectangle(2, 2)
    x = x + 2
    y = y + 2
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

 

 

MEMO

 

Mit GPanel kannst du verschiedene Figuren zeichnen. Hier die wichtigsten Befehle:

 
 

point(x, y)

line(x1, y1, x2, y2)

rectangle(width, height)

fillRectangle(width, height)

rectangle(x1, y1, x2, y2)

fillRectangle(x1, y1, x2, y2)

fillTriangle(x1, y1, ..., y3)

circle(r)

fillCircle(r)

ellipse(a, b)

fillEllipse(a, b)

arc(r, a, b)

text("t")

move(x, y)

Ein Punkt

Eine Linie

Ein Rechteckt (Breite, Höhe)

Ein ausgefülltes Rechteck

Ein Rechteckt (Eckpunkte)

Ein ausgefülltes Rechteck

Eine Dreieck (Eckpunkte)

Ein Kreis mit Radius r

Ein ausgefüllter Kreis

Eine Ellipse mit den Achsen a, b

Eine ausgefüllte Ellipse

Ein Kreisbogen

Den Text t schreiben

Postition festlegen

 

Für Kreise, Kreisbögen, Ellipsen, Texte und Rechtecke, die durch Länge und Breite festgelegt sind, musst du zuerst die Position der Figur mit move() festlegen.

GPanel kennt die sogenannten X11-Farben. Das sind einige dutzend Farbnamen, die du im Internet unter http://cng.seas.rochester.edu/CNG/docs/x11color.html finden kannst. Alle diese Farben kannst du mit setColor(farbe) wählen.

 

 

AUFGABEN

 

1.


Zeichne eine ähnliche Figur:



2.


Wie sehen eigentlich Regenbogen aus? Lass dir vom Computer einen Regenbogen zeichnen. Verwende dazu die Funktion circle(r) so, dass nur der obere Teil des Kreises sichtbar ist.