Referenz - WINDOW
Syntax: WINDOW [[SCREEN] (x1, y1)-(x2, y2)]
Typ: Anweisung
Kategorie: Grafik
WINDOW bestimmt den neuen physischen Darstellungsbereich, also den Bereich, in dem Koordinaten gültig sind.
- 'SCREEN' ist ein optionaler Parameter, der bewirkt, dass die y-Koordinaten von oben nach unten gezählt werden.
- 'x1', 'y1', 'x2' und 'y2' sind die neuen Koordinaten der Eckpunkte des physischen Darstellungsbereichs. Alle Koordinaten können Gleitkommazahlen sein.
WINDOW wird benutzt, um ein neues Koordinatensystem zu definieren. '(x1, y1)' und '(x2, y2) sind die einander gegenüberliegenden Koordinaten der Eckpunkte des grafischen Darstellungsfensters. Alle Koordinaten, die nach einem WINDOW-Aufruf an 'drawing primitives' übergeben werden, sind abhängig von diesen Koordinaten. Wenn SCREEN ausgelassen wird, sind die neuen Koordinaten kartesisch, die y-Koordinaten steigen also von unten nach oben.
Ein Aufruf von WINDOW ohne Parameter stellt den Standard wieder her, der bei der Initialisierung des Grafikfensters (siehe SCREENRES) gegolten hat.
FreeBASIC handhabt die angegeben Koordinaten als Eckkoordinaten des aktuellen Grafikbereichs. Wenn dieser z. B. durch Clipping mittels VIEW (Grafik) eingeschränkt wurde, beziehen sich die angegebenen Eckkoordinaten auf den Clipping-Bereich. Die Koordinatentransformation kann sich also ändern, wenn z. B. der Clipping-Bereich mittels VIEW verändert wird.
Die angegebene Koordinatentransformation gilt ebenso für Zeichenoperationen auf Offscreen-Puffer.
Anmerkung: Die Verwendung von WINDOW wird sich negativ auf die Ausführungsgeschwindigkeit auswirken, da alle Koordinaten zuerst umgerechnet werden müssen, bevor eine Ausgabe erfolgen kann.
Beispiel:
Screenres 320, 200
View (10, 10) - (310, 150), 1, 15 ' Clipping definieren
Window (-1, -1) - (1, 1) ' Fensterkoordinaten setzen
' x-Achse zeichnen
Line (-1,0)-(1,0), 7
Draw String (0.8, -0.1), "X"
' y-Achse zeichnen
Line (0,-1)-(0,1), 7
Draw String (0.1, 0.8), "Y"
Dim As Single x, y, s
' Schrittweite berechnen
s = 2 / PMap (1, 0)
' Funktion plotten
For x = -1 To 1 Step s
y = x ^ 3
PSet (x, y), 14
Next x
Window ' Standard-Koordinatensystem
View Screen ' Clipping deaktivieren
Draw String (120, 160), "Y = X ^ 3" ' Titel schreiben
Sleep
Unterschiede zu QB:
- QB behält die Koordinatentransformation auch bei einer Größenänderung der Zeichenfläche (z. B. mittels VIEW) in gleicher Form bei.
- FreeBASIC behält derzeit die Eckkoordinaten bei, wodurch sich die Koordinatentransformation ändert. Dieses Verhalten wird möglicherweise in einer zukünftigen Compilerversion geändert. Derzeit muss jedoch erneut WINDOW mit entsprechenden Parametern aufgerufen werden, um z. B. nach einem VIEW die vorherige Koordinatentransformation in gleicher Form beizubehalten. Andernfalls wird der Koordinatenbereich eventuell verschoben oder skaliert.
Siehe auch:
SCREEN (Anweisung), VIEW (Grafik), PMAP, Grafik
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|