20. Grafika: GRAPHICS, COLOR, PLOT, DRAWTO, SETCOLOR, LOCATE
Na čo to je
Atari vie obrazovku prepnúť z písmen na body. Každý bod sa dá rozsvietiť jednou z niekoľkých farieb a z bodov a čiar vzniká obrázok.
Ako sa to píše
| Príkaz | Čo robí |
|---|---|
GRAPHICS režim | prepne obrazovku do grafického režimu a zmaže ju |
COLOR n | vyberie „pero“, ktorým sa bude kresliť; 0 je farba pozadia (guma) |
PLOT x,y | rozsvieti jeden bod |
DRAWTO x,y | nakreslí čiaru od posledného bodu do bodu x,y |
SETCOLOR register,odtieň,jas | zmení skutočnú farbu pera alebo pozadia |
LOCATE x,y,premenná | zistí, akým perom je bod x,y nakreslený |
Bod 0,0 je vľavo hore. x rastie doprava, y nadol – naopak ako v matematike.
Režimy
| Režim | Bodov (šírka × výška) | Pier | Poznámka |
|---|---|---|---|
| 0 | 40 × 24 znakov | – | obyčajná textová obrazovka |
| 1, 2 | 20 × 20, 20 × 10 znakov | 5 | veľké farebné písmená |
| 3 | 40 × 20 | 4 | veľké štvorce |
| 5 | 80 × 40 | 4 | |
| 7 | 160 × 80 | 4 | najpoužívanejší na obrázky a hry |
| 8 | 320 × 160 | 2 | najjemnejší, len jedna farba v dvoch jasoch |
| 9, 10, 11 | 80 × 192 | 16, 9, 16 | bez textového okna |
| 15 | 160 × 160 | 4 | ako 7, dvojnásobne jemný na výšku |
Režimy 4, 6 a 14 sú dvojfarebné verzie režimov 5, 7 a 15. Úplná tabuľka je v prílohe D.
Pod obrázkom ostávajú štyri riadky textu – textové okno, do ktorého píše PRINT. Keď ho nechceš, pripočítaj k režimu 16: GRAPHICS 7+16 má obrázok cez celú obrazovku a 96 riadkov bodov namiesto 80.
Celý program
Súbor examples/graphics.abas:
10 REM Graphics: a house in mode 7
20 GRAPHICS 7
30 SETCOLOR 4,9,2:REM background: dark blue
40 SETCOLOR 2,3,8:REM COLOR 3: red
50 COLOR 1
60 PLOT 50,70:DRAWTO 110,70:DRAWTO 110,40:DRAWTO 50,40:DRAWTO 50,70
70 COLOR 2
80 PLOT 45,40:DRAWTO 80,15:DRAWTO 115,40
90 COLOR 3
100 PLOT 75,70:DRAWTO 75,52:DRAWTO 87,52:DRAWTO 87,70
110 COLOR 1:PLOT 62,50:PLOT 98,50
120 LOCATE 80,15,C
130 PRINT "The roof top has colour ";C
140 PRINT "A house in GRAPHICS 7"Preklad a spustenie
Obrázok ukáže len emulátor:
Basic26 graphics.abas --runSimulátor kreslí do pamäte, ktorú nevidíš, ale to, čo program vypíše do textového okna, ukáže:
Basic26 graphics.abas --simČo uvidíš
V emulátore: na tmavomodrom pozadí oranžový obrys domu, zelená strecha, červené dvere a dve bodky ako okná. Pod obrázkom v textovom okne dva riadky. V simulátore len tie dva riadky:
The roof top has colour 2
A house in GRAPHICS 7Ako to funguje
- Riadok 20: režim 7 má 160 bodov na šírku (x od 0 do 159) a 80 na výšku (y od 0 do 79).
- Riadok 50:
COLOR 1vyberie prvé pero. BezCOLORby sa kreslilo perom 0, teda farbou pozadia – a nebolo by vidieť nič. To je najčastejšia chyba prvého grafického programu. - Riadok 60:
PLOTpostaví pero do ľavého dolného rohu domu a štyriDRAWTOobídu obdĺžnik. KaždýDRAWTOpokračuje tam, kde predošlý skončil. - Riadky 70 až 100: iné pero, iná farba: strecha a dvere.
- Riadok 110: samotný
PLOTje jeden bod. - Riadok 120:
LOCATEje opakPLOT: neuloží bod, ale prečíta ho. Vrchol strechy je nakreslený perom 2. - Riadky 130 a 140:
PRINTv grafickom režime píše do textového okna pod obrázkom.
Perá a farby
COLOR nevyberá farbu, ale pero – číslo, ktoré sa uloží do bodu. Akú farbu to číslo na obrazovke má, hovorí farebný register a mení ho SETCOLOR. V režime 7:
COLOR | Register | Farba po zapnutí |
|---|---|---|
| 1 | 0 | oranžová |
| 2 | 1 | svetlozelená |
| 3 | 2 | modrá |
| 0 | 4 | čierna (pozadie a okraj) |
SETCOLOR register,odtieň,jas: odtieň je 0 až 15 (0 sivá, 1 zlatá, 3 červená, 5 fialová, 7 a 9 modrá, 12 zelená, 14 žltozelená), jas párne číslo 0 (tmavá) až 14 (svetlá). Riadok 30 teda mení pozadie na tmavomodré a riadok 40 pero 3 na červené.
Zmena registra prefarbí všetko, čo je tým perom už nakreslené – okamžite a bez prekresľovania. Tak sa robili blikajúce a pulzujúce obrázky.
Vypĺňanie plôch
Atari BASIC na vyplnenie plochy vlastný príkaz nemá (ide to len krkolomne cez XIO 18). Turbo-BASIC XL má FILLTO a PAINT, a tiež CIRCLE – kapitola 35.
Časté chyby
| Čo sa stalo | Čo sa stane |
|---|---|
chýba COLOR | kreslí sa farbou pozadia, obrazovka ostane prázdna |
bod mimo obrazovky (PLOT 200,10 v režime 7) | ERROR- 141 AT LINE 30 |
DRAWTO bez predošlého PLOT | čiara začne v bode 0,0 |
PRINT v režime bez textového okna (+16) | Atari nemá kam písať: prepne obrazovku späť na textovú a obrázok zmizne |
| číslo pera väčšie, než režim má | použije sa len jeho spodná časť: v režime 7 je COLOR 5 to isté ako COLOR 1 |
Vyskúšaj si
- Dokresli domu komín a slnko z niekoľkých čiar.
- Nakresli v režime 7 sto náhodných bodov náhodným perom 1 až 3.
- Nakresli lúče: čiary zo stredu obrazovky (80,40) do bodov na hornom okraji,
FOR X=0 TO 159 STEP 8.
Zhrnutie
GRAPHICS nprepne režim;+16zruší textové okno.COLORvyberie pero,PLOTkreslí bod,DRAWTOčiaru z posledného bodu.- Bod 0,0 je vľavo hore.
SETCOLORmení farbu pera aj všetkého, čo ním už je nakreslené.- Obrázok ukáže emulátor (
--run), nie simulátor.
Späť: 19. Textová obrazovka · Ďalej: 21. Zvuk