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žimprepne obrazovku do grafického režimu a zmaže ju
COLOR nvyberie „pero“, ktorým sa bude kresliť; 0 je farba pozadia (guma)
PLOT x,yrozsvieti jeden bod
DRAWTO x,ynakreslí čiaru od posledného bodu do bodu x,y
SETCOLOR register,odtieň,jaszmení 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žimBodov (šírka × výška)PierPoznámka
040 × 24 znakov–obyčajná textová obrazovka
1, 220 × 20, 20 × 10 znakov5veľké farebné písmená
340 × 204veľké štvorce
580 × 404
7160 × 804najpoužívanejší na obrázky a hry
8320 × 1602najjemnejší, len jedna farba v dvoch jasoch
9, 10, 1180 × 19216, 9, 16bez textového okna
15160 × 1604ako 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:

Atari BASIC
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 --run

Simulá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 7

Ako to funguje

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:

COLORRegisterFarba po zapnutí
10oranžová
21svetlozelená
32modrá
04č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 COLORkreslí 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

  1. Dokresli domu komín a slnko z niekoľkých čiar.
  2. Nakresli v režime 7 sto náhodných bodov náhodným perom 1 až 3.
  3. Nakresli lúče: čiary zo stredu obrazovky (80,40) do bodov na hornom okraji, FOR X=0 TO 159 STEP 8.

Zhrnutie

Späť: 19. Textová obrazovka · Ďalej: 21. Zvuk