SCALE
SCALE | |
Syntax: | SCALE <n> [ ,<xres>, <yres> ] |
Parameter | |
<n>: numerischer Ausdruck im Wertebereich von 0 bis 1 | |
<xres>: nur BASIC 7.0, numerischer Ausdruck im Wertebereich von 320 bis 32767 | |
<yres>: nur BASIC 7.0, numerischer Ausdruck im Wertebereich von 200 bis 32767 | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Grafik-Anweisung |
Aufgabe: | Bildschirmskalierung ein- bzw ausschalten und konfigurieren |
Abkürzung: | scA |
Token: | $e9 (233) |
Verwandte Befehle | |
GRAPHIC |
Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl SCALE ab Commodore BASIC V3.5 oder höher.
Die Anweisung SCALE (engl. Skalierung, Maßstab) aktiviert oder deaktiviert die Bildschirmskalierung in einem der Grafikmodi für hochauflösende oder Multicolor-Grafiken.
Der Parameter <n> kann 2 Werte annehmen:
- 0 schaltet die Skalierung aus.
- 1 schaltet die Skalierung ein.
Andere Werte lösen einen ?ILLEGAL QUANTITY ERROR aus.
Bei ausgeschalteter Skalierung werden die den Grafikbefehlen übergebenen Koordinaten direkt übernommen. Wird die Skalierung eingeschaltet, werden dagegen die Koordinaten auf eine logische Bildschirmauflösung von 1024x1024 Pixeln umgerechnet.
Folgende Grafikbefehle berücksichtigen die Skalierung: BOX, CIRCLE, DRAW, LOCATE, PAINT, SSHAPE, GSHAPE. Wird bei CIRCLE kein Wert für den Y-Radius übergeben, wird dieser automatisch so gewählt, dass ein runder (und nicht wie zu erwarten abgeplatteter) Kreis gemalt wird. Bei GSHAPE wird zwar die Ausgabeposition skaliert, Breite und Höhe der Figur bleiben aber gleich. Nicht skaliert wird die Ausgabe von CHAR. Die Funktion RDOT gibt die Position des Pixelcursors immer unskaliert zurück.
SCALE unter BASIC 7.0
Allgemeine Programmier-Syntax: SCALE <n> [, <xres>, <yres>]
Unter BASIC 7.0 wurde SCALE um 2 Parameter erweitert:
- <xres > gibt die skalierte Bildschirmbreite an. Erlaubt sind die Werte von 320 bis 32767, außerhalb dieses Bereichs wird ein ?ILLEGAL QUANTITY ERROR ausgegeben. Im Multicolor-Modus muss xres für den selben horizontalen Maßstab doppelt so groß sein wie im Hires-Modus.
- <yres> gibt die skalierte Bildschirmhöhe an. Erlaubt sind die Werte von 200 bis 32767, außerhalb dieses Bereichs wird ein ?ILLEGAL QUANTITY ERROR ausgegeben.
xres und yres müssen immer gemeinsam angegeben werden, ansonsten wird ein ?SYNTAX ERROR ausgelöst.
Weitere Unterschiede zu BASIC 3.5:
- Durch den Befehl GRAPHIC wird die Skalierung deaktiviert.
- Beim CIRCLE-Befehl wird der Standard-Y-Radius nicht so an die Skalierung angepasst, dass Kreise kreisförmig bleiben.
Beispiele[Bearbeiten | Quelltext bearbeiten]
10 GRAPHIC 1,1 20 SCALE 0 30 GOSUB 100 40 SCALE 1 50 GOSUB 100 60 END 100 CIRCLE 1,159,99,30 110 CIRCLE 1,159,99,50,50 120 BOX 1,109,49,209,149 130 RETURN
Es wird zuerst im normalen Maßstab ein kleiner Kreis sowie ein von einem Quadrat umschlossener größerer Kreis gezeichnet und dasselbe anschließend bei aktivierter Skalierung. Unter BASIC 3.5 bleibt der kleinere Kreis kreisförmig, während der große Kreis und das Quadrat deutlich abgeplattet sind. Unter BASIC 7.0 ist auch der kleine Kreis in der Höhe gestaucht.
10 GRAPHIC 1,1 20 GOSUB 100 30 GETKEY K$ 40 GRAPHIC 3,1 50 SCALE 1,640,200 60 GOSUB 100 70 END 100 CIRCLE 1,159,99,30 110 CIRCLE 1,159,99,50,50 120 BOX 1,109,49,209,149 130 RETURN
Dieses Programm läuft nur unter BASIC 7.0. Ähnlich wie im vorigen Beispiel werden ein kleiner und ein großer Kreis sowie ein Quadrat gezeichnet, aber zuerst ohne Skalierung auf dem Hires-Bildschirm und nach einem Tastendruck skaliert im Multicolor-Modus. Zu beachten ist, dass der kleinere Kreis zu einer Ellipse verzogen wird.
AUTO | BACKUP | BOX | CHAR | CIRCLE | COLLECT | COLOR | COPY | DEC | DELETE | DIRECTORY | DLOAD | DO | DRAW | DS | DS$ | DSAVE | EL | ELSE | ER | ERR$ | EXIT | GETKEY | GRAPHIC | GSHAPE | HEADER | HELP | HEX$ | INSTR | JOY | KEY | LOCATE | LOOP | MONITOR | PAINT | PRINT USING | PUDEF | RCLR | RDOT | RENAME | RENUMBER | RESUME | RGR | RLUM | SCALE | SCNCLR | SCRATCH | SOUND | SSHAPE | TRAP | TROFF | TRON | UNTIL | VOL | WHILE