Upload failed. Maybe wrong permissions?

User Tools

Site Tools



6. Grafika 1.

6-0.jpg
  

30:05
1985. február 20.
MTV 2. csatorna, 19:30

Bevezető

6-1.jpgKovács Győző
  1:07 Kedves nézőink, ma rajzolni tanítjuk önöket számítógéppel. Önök már ismerik, hogy a számítógéphez kapcsolt képernyőn, televíziós készüléken betűk jelennek meg, ezekkel a betűkkel vagy a gép közöl önökkel üzeneteket, vagy pedig mi közlünk a géppel valamilyen utasítást vagy parancsot. A számítástechnika korai időszakában, a negyvenes évek végén Neumann János a második gépéhez – ha jól emlékszem – katódsugárcsövet akart használni, amelyen nemcsak betűket, számokat tudott volna megjeleníteni, hanem képeket is. Tette ezt azért, mert a kép, a rajz egy kicsit közelebb áll az emberhez, mint az írás, több információt is tartalmaz. Az is nyilvánvaló, hogy ezeket a rajzokat egymás után is a képernyőre lehet vinni, ez csak program kérdése, és ekkor a szemünk ezt egy folyamatos mozgássá teszi össze, például animációs filmet is tudunk ilyen módon készíteni. Annak idején – mert hiszen Neumann ötletét elég későn valósították meg –, annak idején inkább az úgynevezett sornyomtatóval, a számítógéphez kapcsolt nyomtatókészülékkel állították össze ezeket a rajzokat, az egyes pontokat betűkből, írásjelekből, számokból.
  

6-2.jpg6-3.jpg

  Hát eleinte ezeket inkább ilyen humoros rajzok készítésére használták, aztán később néhány gyakorlati felhasználásnál is jól jött a gépnek ez a rajzolási tulajdonsága. Vannak az úgynevezett rajzgépek, amelyeket röviden úgy tudnék ismertetni, hogy egy írószerkezetet, mondjuk egy ceruzát mozgat két motor két irányban, és ebből a mozgásból keletkezik a rajz. Természetesen ezeket a motorokat a számítógép vezérli. Manapság ezek a kis gépek is, amelyekkel itt foglalkozunk, nagyon alkalmasak rajzok készítésére, sőt egyre több gyár, intézmény, amely ilyen grafikák készítésével foglalkozik, ad mindenféle kiegészítő berendezést a számítógéphez, hogy minél tökéletesebb rajzokat lehessen létrehozni. Ma itt csak a grafikákról beszélünk, tehát a vonalas rajzokról, de hát – hivatkozom ismét a bevezető képsorokra – nem csak ilyeneket, hanem nagyon bonyolult és animációs, tehát mozgó rajzokat is lehet készíteni, majdnem festményszerű rajzokat is lehet készíteni, különösen a színes képernyőkön. Én azt hiszem, hogy ha ezt önök megtanulják, akkor nagyon sikeres programokat tudnak készíteni, hiszen ezek a programok nem csak a családban okoznak nagy sikert, de valószínűleg ismerőseik körében is.

Koordináták

6-4.jpgHerneczki Katalin Spectrum
  4:02 Hát akkor kezdjük a legelején. Ha a képernyőre rajzolni vagy írni szeretnénk, először is el kell döntenünk, hogy mit és hová szeretnénk írni. Ehhez egy kicsit elevenítsük fel a koordináta-rendszerről a középiskolában tanultakat. Egy pontot a síkon – és a képernyő ilyen síknak tekinthető – két szám, azaz egy számpár határoz meg. 6-5.jpgA számpár jelentése a sík két, egymásra merőleges egyenesétől, az úgynevezett koordinátatengelyektől való távolsága a pontnak, vagyis az egyik szám jelenti az egyik tengelytől való távolságot, a másik szám pedig a másik tengelytől való távolságot jelenti. Kérdés az, hogy a képernyőn hol helyezkedik el a koordináta-rendszer, a két tengely. Nos, ez attól függ, hogy milyen utasítást használunk és milyen számítógépen dolgozunk. Eddig egyetlenegy módon tudtunk megjeleníteni a képernyőn valamilyen feliratot vagy egy változó értékét, a PRINT utasítás segítségével. Ez a felirat, a TV-BASIC felirat is ezzel az utasítással került a képernyőre. Először most ezt töröljük, a CLS billentyűvel, Spectrum gépnél. (A CLS nem billentyű, hanem utasítás, de Spectrumon persze minden utasításnak saját billentyűje van – L. A. D.)
  6-6.jpg
  PRINT utasítással mindig a soron következő üres pozícióra tudtunk írni, vagy pedig a következő sorba. Persze ezzel elérhetjük azt, hogy akár a képernyő közepére írhatunk egy szöveget, de ez egy kicsit nehézkes, hiszen elé tetszés szerinti számú üres sort kell írni, illetve az érvényes sorba a szöveg elé szóköz karaktereket, tehát üres karaktereket kell írni. Ennél sokkal egyszerűbb mód is van, a PRINT TAB, illetve a PRINT AT utasítások használata. A PRINT TAB utasítás hatására, a TAB kulcsszó után megadunk egy számot, és annyiadik pozíciónál kezdődik a kiírás. Nézzünk erre egy példát. Tehát PRINT TAB és mondjuk 5. Ezt követi egy pontosvessző, és mondjuk egy szöveg, legyen az, hogy „5. oszlop”.
  

6-7.jpg6-8.jpg

  Természetesen változót is megadhatunk, nemcsak szöveget. Az utasítás hatására valóban az ötödik oszlopban kezdődik a kiírás. Tudjuk azt, hogy Spectrum gépnél egy sorba harminckét karaktert írhatunk. Kérdés az, hogy ha a TAB kulcsszó után harminckettőnél nagyobb számot adunk meg, mi történik. Megnézzük, képernyőtörlés után. Tehát PRINT TAB, mondjuk 36, ezt pontosvessző követi, és a szöveg, az, hogy „36. oszlop”.
  
6-9.jpg6-10.jpg

  6-11.jpg
  Valahol a sor elején jelent meg ez a kiírás. Nos, ez úgy történt, hogy harminckét pozíció férne egy sorba, aztán elölről, a sor elejéről folytatódik a számozás, harmincharmadiknak megfelel az első, harmincnegyediknek a második pozíció, és így tovább, a harminchatodiknak így ugyanazon sor negyedik pozíciója felelt meg.
  A másik utasításunk, a PRINT AT utasítás egy kicsit többet tud ennél is. Ugyanis itt az AT kulcsszó után két számot adunk meg, ahol ezek közül az első megadja, hogy hanyadik sorba írjunk ki, a második szám pedig megmutatja, hogy a soron belül hanyadik pozíción, hanyadik oszlopban kezdődjék a kiírás. Ezt is megnézzük egy példán. Tehát PRINT AT, mondjuk a negyedik sorba szeretnénk írni, egy vesszőt írunk, és az ötödik pozíción kezdjük. Utána következik a pontosvessző és egy szöveg, mondjuk az, hogy „4. sor”, S, vessző, „5. oszlop”. És valóban, a szöveg a negyedik sorban, és azon belül az ötödik pozíción kezdődik.
  
6-12.jpg6-13.jpg

  Egyébként más gépeknél is megtalálható a PRINT AT-nek megfelelő utasítás. Például a Primónál a PRINT$-t használhatjuk a PRINT AT helyett. Általában a számítógépeknél a sorok és oszlopok száma változó, általában húsz sorunk van és körülbelül negyven oszlopunk. Javasoljuk kedves nézőinknek, hogy ha egy bonyolult képernyőtervük van, akkor azt előtte kockás papíron rajzolják meg.

Az első karaktergrafikus program

6-14.jpgKiss Donát Spectrum
  8:44 Kezdő programozók egyik első sikerélménye szokott lenni, ha sikerül például valamilyen szöveget a képernyő adott pozíciójában, mondjuk egy csillagokkal bekeretezett vagy csillagokkal körülvett négyzetben megjeleníteni. Próbáljunk meg mi is egy ilyen sikerélményhez jutni most közösen. Ez a program már több részből áll majd, és ezért érdemes őket elkülöníteni és külön megtárgyalni. Kezdjük talán avval, hogy milyen módszerrel jelenítenénk meg egy csillagokból álló négyzetet. Először fogjunk hozzá a két vízszintes vonal kirajzoltatásához. Ezt praktikusan ciklusszervezéssel fogjuk megoldani, sőt olyan ravaszak leszünk, hogy ugyanavval a ciklussal a két párhuzamos vonalat egyszerre fogjuk megjeleníteni. Nézzük meg, hogy fog ez kinézni. Ciklusváltozónak olyan értékeket választunk – vagyis a ciklusváltozó értékhatárainak –, amely megfelel a képernyő méretének, vagyis az egy vízszintes sorban megjeleníthető karakterek számának. Ez, mint tudjuk, a Sinclair-gépeknél harminckettő, így a ciklusváltozó értéke 0-tól 31-ig fog majd futni. A ciklus magja abból áll, hogy például a nulladik sor i-edik oszlopában – tehát a ciklusváltozó szerinti oszlopában – megjelenítünk egy csillagot, ez lesz majd a fölső sor, és ugyanezt megtesszük például tíz sorral lejjebb, tehát a tizedik sor i-edik oszlopában úgyszintén. És mint minden jólnevelt ciklust, ezt is lezárjuk egy cikluszáró NEXT utasítással.
  

6-15.jpg6-16.jpg

  
6-17.jpg6-18.jpg

  Az egésznek adjunk egy megjegyzést, hogy tudjuk, hogy itt éppen mit írtunk, mondjuk ötössel, ez legyen a „vízszint”. Nézzük meg, hogy eddig mit sikerült programoznunk. RUN-nal elindítjuk… és két vízszintes sor máris megjelent a képernyőn, már fél siker.
  
6-19.jpg6-20.jpg

  Próbáljuk meg ezt most lezárni két oldalon két függőleges sorral, vagyis oszloppal. Ehhez a program végrehajtását úgy fogjuk folytatni, vagyis írását, hogy egy újabb ciklust szervezünk, ebben az esetben éppen azért, hogy a két függőleges sort egy ciklus segítségével kinyomtathassuk.
  Következő sorszámunk az 50-es lesz. Ez a ciklusváltozó most azonban a nullától tízig terjedő értékeket fogja fölvenni, mert tíz magasságú lesz ez az oszlop. Hiszen a tizedik sorba írtuk az alsó csillagsort. Hatvanas utasítással a ciklusmag lesz, ami éppen azt jelenti majd, hogy az i-edik sor, tehát változó sor, de mindig nulladik oszlopában fogjuk ezt a csillagot megjeleníteni. Ugyanezt a képernyő jobb oldali szélén is, tehát i-edik sor harmincegyedik oszlopában is megtesszük. És ezt a ciklust is lezárjuk egy cikluszáró utasítással. És hogy meg tudjuk jegyezni, hogy most éppen mit írtunk, írunk egy megjegyzést, hogy „függőleges”
  
6-21.jpg6-22.jpg

  
6-23.jpg6-24.jpg

  
6-25.jpg6-26.jpg

  Nézzük meg, hol tartunk. RUN… Most már csak a szöveget kellene megjeleníteni ennek a négyzetnek a közepén valahol… ez lesz a 90-es utasítás. Hát úgy ezt körülbelül az ötödik sor mondjuk tizedik oszlopában kezdjük… legyen ez a kedvenc tévéműsorunk neve… mi is lehet ez, ha nem más, mint az, hogy TV BASIC.
  
6-27.jpg6-28.jpg

  
6-29.jpg6-30.jpg

  12:16 Előbb-utóbb mindenkiben felmerül az az igény, hogy ennek folytatásaként, miután ilyen statikus ábrarészleteket, egyszerű grafikákat meg tud jeleníteni, meg tudja mozgatni a képernyő egyes részleteit, figuráit, a betűket például. Lássunk erre egy egyszerű példát. Tegyük fel, hogy ezt a TV BASIC feliratot ezen a soron végig szeretnénk balról jobbra futtatni. Hát mit tennénk ilyenkor? Biztos mindenki kitalálta már, hogy ciklust szervezünk, ez már eddig is bevált. Valóban evvel kezdjük, mégpedig arra szervezünk majd ciklust, hogy ennek a sornak hanyadik oszlopába írja ki ezt a feliratot a gép, hogy TV BASIC. S hogyha ezt az oszlopváltozót folyamatosan növeljük, például eggyel, akkor mindig egy hellyel arrébb fogja majd ezt kirajzolni. Hát tegyük ezt meg. 85-ös sorszámmal felveszünk egy újabb ciklusszervező utasítást, mégpedig az i értéke ebben az esetben nullától mondjuk 23-ig fut. A 90-es utasítást a már ismert editáló parancsok segítségével kijavítjuk, mégpedig az oszlopkoordinátát kijavítjuk, mert ide azt fogjuk írni, hogy i, tehát az ötödik sor i-edik oszlopába íratjuk mindig ezt, hogy TV BASIC. És ezt a ciklust is lezárjuk. Nézzük, mi lett az eredmény.
  
6-31.jpg6-32.jpg

  
6-33.jpg6-34.jpg

  6-35.jpgHát először is azt látjuk, hogy nagyon gyorsan történik mindaz, amit látunk, másrészt nem egészen az, amit vártunk. Hogy jobban meg tudjuk figyelni hibánkat, lassítsuk ezt a folyamatot le, úgy, hogy fölveszünk egy időhúzó utasítást, evvel, azt hiszem, már máskor is találkoztunk: a Sinclair-gépeknél ez a PAUSE utasítás. Nézzük ismét, mi történik egész pontosan. Jól megfigyelhető, hogy bár a TV BASIC feliratot minden esetben eggyel arrébb rajzolja a gép, azonban az előző pozícióból ott maradt T betű mindig megmarad a képernyőn. Ez azért nem meglepő, mert hogyha mi egy nyomtató utasítást vagy PRINT utasítást kiadunk, az nem jelenti azt, hogy a képernyőnek bármely részét letörölné. Vagyis a T betű mindig ott marad az előző pozícióból. Hát mit tennénk ahhoz, hogy ez a T betűből álló csík, ami itt éktelenkedik a képernyőn, ne legyen itt? Erre többféle megoldás létezik. Az egyik legegyszerűbb az, hogy nem a TV BASIC feliratot nyomtatjuk mindig a megfelelő helyre – ehhez ezt a sort ki kell javítani –, hanem azt a ravaszságot követjük el, hogy a TV BASIC szöveg egy szóközzel kezdődjék. 6-36.jpgVagyis egy üres karakterrel. Ennek az lesz a hatása, hogy bár látni nem fogjuk azt az üres karaktert például a legelső esetben, de a későbbi esetekben az üres karakter mindig felülírja az ott maradó, helyesebben most már nem maradó T betűt. Hát nézzük meg, hogy ez is működik-e… és íme az első animációs sikerélmény a számítástechnikából.
  
6-37.jpg6-38.jpg

  15:32 ZX81
  
6-39.jpg6-40.jpg

  
6-41.jpg6-42.jpg

  Az egészen egyszerű számítógépeknél is mód van arra, hogy bizonyos grafikai hatásokat érjünk el. Így például a ZX81-en félgrafikus karakterek felhasználásával készült ez a kis ábra. Ennek a felbontása ugyan nem túl finom, de mégis emlékeztet egy emberkére.
  
6-43.jpg6-44.jpg

  
6-45.jpg6-46.jpg

  Természetesen a számítógépek többségén ennél finomabb rajzolatok is elérhetők, mégpedig oly módon, hogy minden egyes betűmező… vagy karaktermezőnek a nyolcszor nyolc képpontja külön is elérhető a megfelelő grafikai utasítások segítségével.

Az első egyenes

6-47.jpgPinkert László Primo
  16:04 A személyi számítógépek legtöbbje a bemutatottnál finomabb grafikai lehetőségeket is biztosít. HT-n 48·128, ZX-en 44·64, Spectrumon 176·256, Primón 192·256 pontra van felosztva a képernyő. Ezeket a pontokat egyenként meg lehet gyújtani a SET, illetve PLOT utasítások felhasználásával, vagy el lehet oltani a RESET, illetve UNPLOT utasítások segítségével. Az utasítások az egyes képpontokra koordinátáik alapján hivatkoznak. A személyi számítógépek olyan koordináta-rendszert használnak, ahol a képernyő bal alsó sarkában van a 0, 0 koordinátájú pont.
  Próbáljuk ki most a SET utasítást.
  

6-48.jpg6-49.jpg

  A pont megjelent valahol itt mellettem a képernyőn. Most meggyújtok egy másikat, hogy lássuk, hogy a képernyő több pontja is meggyújtva lehet egyidőben.
  Most pedig a RESET utasítással eloltom az egyiket.
  
6-50.jpg6-51.jpg

  Amint látjuk, az utasítások működnek.
  17:47 Kíséreljünk meg most ezeknek az utasításoknak a felhasználásával egy egyenest rajzolni a képernyőre. Az egyenest egyszerű program rajzolja, amelyet előzőleg beütöttem a gépbe.
  6-52.jpg
  A programlistán láthatjuk, hogy a 10-es utasítás egy ciklusutasítás, mely az x, vagyis vízszintes koordinátát változtatja 0-tól 255-ig. A 20-as utasítás kiszámítja az aktuális x értékhez az y-t, vagyis a képpontnak a magasságát a képernyőn. A 30-as egy egyszerű SET utasítás, amely az x, y koordinátájú pontot meggyújtja. Próbáljuk ki most a programot.
  6-53.jpg
  Az egyenes megjelent. Ha közelebbről megnézzük, észrevehetjük, hogy a program a SET utasítást használja, vagyis az egyenes képpontokból, jobban mondva kis négyzetekből áll.
  
6-54.jpg6-55.jpg

  6-56.jpg

Grafika a Spectrumon

6-57.jpgKiss Donát Spectrum
  18:56 Ismerkedjünk most meg a Spectrum grafikai képességeivel, hiszen minden gépnek némiképp eltérőek a lehetőségei ezen a területen. Mit tudunk eddig arról, hogy hova mit lehet írni a Spectrumon a képernyőre? Most azt tudjuk, hogy a PRINT utasítással, vagyis a PRINT AT segítségével tetszőleges pozícióba tudunk írni karaktert vagy egy írásjelet. Mégpedig oly módon, hogy a huszonnégy sor és a harminckét oszlop valamelyikét megadjuk egy koordinátapár formájában. Azt is tudjuk továbbá, hogy a bal felső sarokban helyezkedik el a 0, 0 koordinátájú pont.
  6-58.jpg
  6-59.jpgEnnél sokkal kisebb, tehát sokkal finomabb képpontokat is meg tudunk jeleníteni, mégpedig minden ilyen karakterpozícióból hatvannégyet. Tehetjük ezt azért, mert minden karakter tulajdonképpen nyolc további sorból és nyolc további oszlopból áll. Ezeket az elemi képpontokat a PLOT utasítás segítségével lehet megvilágítani, s az UNPLOT segítségével kioltani vagy törölni. (Ez tévedés, UNPLOT utasítás csak ZX81-en van; Spectrumon a PLOT utasításban a háttér színét kell megadni a pont törléséhez – L. A. D.)
  6-60.jpgAz egyik lényeges különbség azonban az, hogy a 0, 0 koordinátájú pont nem a bal felső, hanem a bal alsó sarokban található. Nézzük meg, hogy ez valóban így van-e. PLOT 0, 0 hatására a bal alsó sarokban ez a picike kis képpont jelent meg – ez az a legkisebb rajzolat vagy legkisebb pont, amit kezelni tudunk a program segítségével. Mielőtt továbbmennénk, beszéljünk azonban egy kicsit a színekről. Hogyan tudjuk kiszínezni majd az ábráinkat, illetve hogyan tudjuk elérni azt, hogy általunk megválasztott színben – háttér- és előtérszínben – jelenjenek meg az ábrák, amiket rajzolunk? Nos, a Spectrumon, amint ezt valószínűleg tudják, nyolc szín közül lehet mindig választani, van azonban egy olyan megkötés, hogy minden karakterpozícióban egy háttér- és egy előtérszín lehet. Ez természetesen bármelyik lehet a nyolc közül. Spectrum-nyelven ezt úgy mondják, hogy egy papír- és egy tintaszín. Ezenkívül a 24·32 (karakterpozíciót – L. A. D.), tehát a hasznos területet körülölelő területet is beszínezhetjük. Ezt a BORDER utasítás segítségével. Csináljunk egy ilyen utasítást akkor, amelyik például zöldre festi a keretet – ez a BORDER 4 –, zöldre a papírt, tehát a hátteret és feketére a tintát. Ehhez még egy CLS is kell, hogy ez az egész képernyőn végrehajtódjék.
  

6-62.jpg6-63.jpg

  Íme, most azt látjuk, hogy minden zöld, de majd azt is látni fogjuk, hogy amit rajzolunk erre, ugye, az lesz tintaszínű vagy előtérszínű, az feketében fog megjelenni.
  6-64.jpg21:34 Ezek után nézzük az első grafikai utasítást. Ez pedig a DRAW. A draw ugye angolul annyit tesz, hogy rajzolni – nos, valóban, ennek az utasításnak a segítségével rajzolni lehet, mégpedig egyenes és ívelt szakaszokat. Kezdjük az egyenes szakaszokkal. A DRAW utasításnak mindig két paramétert vagy számot kell megadjunk az argumentumában. Ha most én azt mondom, hogy DRAW 50, 50, megnyomom az t és félreállok, akkor azt látom, hogy az történt, hogy egy ilyen átlós egyenest kaptam – egy 45 fokos egyenest mégpedig –, itt a bal alsó sarokban. Nos, ebből a kísérletből az derül ki, hogy a DRAW 50, 50 azt jelenti, hogy vízszintes irányban ötven és függőleges irányban ötven képpontnyira legyen az új végpont. Kiderül továbbá egy másik nagyon fontos tanulság is, hogy az előző végpont az volt, ahol a legutolsó rajzoló- vagy képpontot megvilágító utasítást végrehajtottam. Vagyis ebben az esetben a 0, 0, hiszen emlékeznek, az előbb azt mondtam, hogy PLOT 0, 0. Ezt megjegyezte a gép, és a DRAW mindig csak egy relatív elmozdulást ad, tehát nem tartalmazza az előző végpontot – mindig azt veszi előző végpontnak, ahol abbahagytam a rajzolást. (Mindez tökéletesen helytálló, de Kiss Donát megfeledkezik arról, hogy a PLOT 0, 0 parancs kiadása után írt és lefuttatott egy egysoros, CLS utasítást is tartalmazó programot. Az előző végpontot a CLS állította be 0, 0-ra, a korábbi rajzolásoktól teljesen függetlenül – L. A. D.)
  6-65.jpgHa ez így van, és most azt mondom, hogy mondjuk DRAW 100, 0, akkor ugyanezt az egyenest kell folytassa egy vízszintes egyenessel. És íme, ez egy nagyon jólnevelt Spectrum, így is történt.
  Hát evvel aztán mindenféle alakzatot, egyenes szakaszokból összerakható alakzatot tudunk rajzolni. Próbáljunk meg négyzetet vagy esetleg négyzeteket rajzolni most mi. Hát ugye ehhez a programhoz már egy egész sorunk megvan, ez be fogja majd állítani az alapszíneket. A következő sor, amire szükség lesz, az ugye – ravasz módon paraméteresen fogom megadni – az az utasítás, amely egy négyzetet, egy zárt négyzetet fog rajzolni, mégpedig a hosszúságú szakaszokból. Ezt úgy lehet megadni, hogy DRAW a, 0 – ugye vízszintesen a, függőlegesen nulla –, majd DRAW 0, a – ugye ez a jobb oldali függőleges –, majd DRAW -a, 0 – negatív számok hatására balról jobbra (helyesen: jobbról balra – L. A. D.) rajzolunk, ez a fölső vízszintes, majd DRAW 0, -a.
  
6-66.jpg6-67.jpg

  Ahhoz, hogy ezt a programot végre is tudja hajtani, ugye, ehhez először az a-nak valamilyen értéket kell adni. Legyen ez most harminc. Biztos már önök is észrevették, hogy ez a program nem működhet – éppen az előzőekben elmondottak miatt –, hiszen csak DRAW utasítást tartalmaz, és sehol sincs legelőször definiálva az, hogy mi legyen a kezdeti pont. Hát tegyük ezt meg a tízes sorban, mégpedig úgy, hogy jelöljük ki az 50, 50 pontot mint a legelső kezdőpontot, ugye ettől kezdve jobbra, föl, balra és le fogja majd rajzolni a négyzetet ez a program, ha igaz. Nézzük meg, hogy így történik-e – úgy van, mégpedig zöld alapon feketével, tehát eddig minden stimmel.
  
6-68.jpg6-69.jpg

  Mi lenne, ha most több négyzetet szeretnénk rajzolni, mondjuk egyre kisebbeket, amelyek átfedik egymást, tehát a jobb vagy a bal alsó sarkuk közös? Hát ezt nagyon egyszerűen tehetjük, bizonyára emlékeznek még a ciklusszervezésnél elmondottakra. Szervezzük ciklusba ezt a 30-as utasítást, ha már úgyis paraméteresen adtuk meg. Nem véletlen. Ehhez a 20-as sort cseréljük ki, és itt adjuk meg a ciklusváltozó – amely ebben az esetben természetesen az a lesz –: ennek a kezdeti és a végértéke. Ugye ezt úgy tesszük, hogy megadjuk a FOR a-val a kezdeti értékét, legyen először mondjuk a legnagyobb, amit kirajzol, és legyenek egyre kisebbek… 100-tól 50-ig, és mivel ugye nem egyesével szeretnénk, ha lépne – hiszen akkor egymásra rajzolná ezeket, és nem látnánk sokat –, hanem mondjuk tízesével, ezért ugye ezt a STEP-pel külön meg kell adni. És mint minden magára kicsit is adó ciklust, ezt is le kell zárni a NEXT utasítással.
  
6-70.jpg6-71.jpg

  Nézzük, mi történik.
  6-72.jpg
  Hát körülbelül ilyesmit vártunk.
  25:58 A DRAW utasítás segítségével egyenes szakaszokon kívül tudunk rajzolni ívelteket is, tehát mondjuk egy félkört. Ezt pedig úgy tehetjük, hogyha ugyanennek a DRAW utasításnak nem két, hanem három paramétert adunk. Ebben az esetben ugyanis az első két paramétert továbbra is a végpontnak fogja tekinteni, a harmadikat viszont hajlásszögnek értelmezi. Nézzük meg, mi történik, ha most azt mondjuk, hogy mondjuk DRAW 50, 50, s azt mondjuk, hogy PI.
  6-73.jpg
  A legutolsó négyzet átlósan elhelyezkedő két sarka közé rajzolt egy félkört. Ez nem meglepő, mert az pontosan 50, 50 távolságra van ugye, s a PI nem más, mint éppen egy félkörnek megfelelő, radiánban egy félkörnek megfelelő hajlásszög. Nos, hát evvel érdemes elkísérletezni, próbáljanak meg esetleg különböző alakzatokat rajzolgatni. Ugye ebből akkor adódik az a következtetés, hogy akkor egész kört úgy rajzolunk, hogy a DRAW harmadik paramétereként 2π-t adunk meg. No most így is lehet, de ennél van egy sokkal egyszerűbb módszer is, és ez a második olyan grafikai utasítás, amivel itt foglalkozni szeretnénk. Ezt pedig úgy hívják, hogy CIRCLE. Hát töröljük ezeket le, ami most itt a képernyőn van, s nézzük meg, hogy néz ki ez a CIRCLE utasítás. Nos, a CIRCLE utasításnak szintén három paramétert kell megadjak, nagyon értelemszerű: az első kettő a kör középpontja, legyen ez most a 100, 100 pontban, a harmadik pedig a sugár. Hát legyen ez most egy 50 sugarú kör – íme, itt van.
  6-74.jpg
  Ez is nagyon egyszerűen és érthetően, azt hiszem, alkalmazható. Próbáljanak meg, azt javaslom, gyakorlásképpen az előzőnek a mintájára például koncentrikus körök rajzolásával és két egyenes szakasz rajzolásával céltáblát készíteni.

Grafika a Commodore-on

Pinkert László Commodore 64
  28:01 Talán észrevették, hogy a Commodore a mai adásban még nem jutott szóhoz. Ennek az az oka, hogy noha igen fejlett grafikai lehetőségekkel rendelkezik – például 200·320 képpontot kezel, tizenhatféle színt használ –, ezek BASIC-ből közvetlen utasításokkal nem érhetők el. A Commodore 64-es grafikai lehetőségeivel külön adásban foglalkozunk majd. Addig is vigaszképpen nézzünk meg egy Commodore-ra írt játékprogramot.
  28:30

(A 95 másodperces videóbejátszás, amelyet a záró feliratok szakítanak meg, a Loco nevű játékprogramból való; az itt mellékelt videó nem azonos a sorozatban láthatóval, de ugyanazt a játékot ábrázolja – L. A. D.)