Ongelmani näiden kahden kanssa on yksinkertainen, mutta ongelma kuitenkin. En ole lukemisesta huolimatta vieläkään täysin varma miten noita käskyjä käytetään kunnolla. Esim. aloituspisteen määrittäminen on ollut melkoisen hankalaa minulle, ja myös se missä muodossa niitä käytetään, ja niin pois päin. Kyllä, olen lukenut Qbasicin ohjeet, jotenka siinä ei siis ongelmaa. Jos joku ymmärtää nuo käskyt, pyydän häntä antamaan selityksen niistä, että pääsen niitä käyttämään. Kiitokset jo etukäteen..
-Grey-
DRAW:sta mulla ei ole tarkempaa tietoa mutta koitan nyt jotenkin selvittää tota LINEä.
eli näinpiirretään viiva vasemmasta reunasta 10 pikseliä näytön yläreunasta alaspäin
Viiva loppuu kohtaan 100 pikseliä näytön vasemmasta reunasta oikealle ja 100 pikseliä yläreunasta alaspäin:
screen 13 LINE (0, 10)-(100, 100), 1 ' 1 = väri. väri on siis sininen.
jos halutaan piirtää neliö, se tehdään näin:
LINE (20,10)-(50,50), 1, B
Esimerkki piirtää neliön vasemman yläkulman kohtaan 20,10 (20 = x, 10 = y)
Vasen alareuna tulee kohtaan 20, 50. Oikea yläreuna tulee kohtaan 50,10 ja oikea alareuna kohtaan 50, 50.
1 viittaa taas väriin (sininen tässä tapauksessa) ja B kertoo että tehdään neliö. Jos neliö halutaan laittaa sisältäkin siniseksi, B:n paikalle pitää laittaa BF (F = Filled)
Kirjoitetaan nyt vaihteeksi kunnolla tekstiä :) Luonnollisesti näitä grafiikkakomentoja käyttäessä on oltava ensin asetettu grafiikkatila SCREEN:illä.
1. LINE-komento
LINE-komennolla voit piirtää eri värisiä viivoja sekä täytettyjä ja täyttämättömiä nelikulmioita. Komennon syntaksi on:
LINE [[STEP](x1,y1)] - [STEP](x2,y2) [,[vari] [,[B[F]] [,tyyli]]]
Jossa parametrit ovat samassa järjestyksessä:
STEP - x1 ja y1 lasketaan edellisestä piirretystä kohdasta
x1 - vasemman yläkulman x
y1 - vasemman yläkulman y
STEP - x2 ja y2 lasketaan edellisestä piirretystä kohdasta
x2 - oikean alakulman x
y2 - oikean alakulman y
vari - viivan/nelikulmion väri
B - piirretään nelikulmio viivan sijasta
F - piirretty nelikulmio täytetään
tyyli - reunuksen kuvioinnin määritys (lisätietoa QB:n ohjeessa)
Esimerkkiohjelma:
SCREEN 12 LINE (50, 50)-(100, 100) LOCATE 15: PRINT "Tavallinen viiva pisteestä 50,50 pisteeseen 100,100" SLEEP CLS LINE (50, 50)-(100, 100), 5, B LOCATE 15: PRINT "Täyttämätön violetti nelikulmio" SLEEP CLS LINE (50, 50)-(100, 100), 5, BF LOCATE 15: PRINT "Sama nelikulmio täytettynä" SLEEP CLS LINE (50, 50)-(100, 100), , B, &HF0F LOCATE 15: PRINT "Katkoviivainen nelikulmio"
2. DRAW-komento
DRAW-komento on monipuolinen piirtokomento, jolle annetaan merkkijonomuotoista piirtodataa samalla tavalla kuin PLAY-komennolle annetaan soitettava melodia merkkijonoina.
Merkkijonoissa voi käyttää seuraavia piirtokomentoja:
[N] - seuraava viiva piirretään [B] - seuraavaa viivaa ei piirretä U[n] - siirrytään ylös n:n verran D[n] - siirrytään alas n:n verran L[n] - siirrytään vasemmalle n:n verran R[n] - siirrytään oikealle n:n verran E[n] - siirrytään yläoikealle n:n verran F[n] - siirrytään alaoikealle n:n verran G[n] - siirrytään alavasemmalle n:n verran H[n] - siirrytään ylävasemmalle n:n verran
Ja seuraavia väri-, koko- ja kulmakomentoja:
Cn - vaihtaa piirtoväriksi n:n
Pb,p - täyttää suljetun alueen, jonka reunan väri on b värillä p
Sn - määrittää piirrettävien viivojen koon (oletus: 4)
An - piirtää jatkossa n*90 asteen kulmassa, kun n on 0-3
TAn - piirtää jatkossa n asteen kulmassa, kun n on 0-360
Esimerkkiohjelma:
SCREEN 13 DRAW "bm160,100" 'siirtyy näytön keskelle DRAW "be50" 'siirtyy neliön oikeaan ylänurkkaan DRAW "d100l100u100r100" 'piirtää neliön DRAW "bg50" 'palaa neliön keskipisteeseen DRAW "p1,15" 'värittää neliön
Miten se Antti nuin pitkiä kirjottelee?-) Kopioipa nuo ja tee uusi opas, sehän on tuossa valmiina.. :)
Selvennetäänpä tuosta tuo LINE:n style -parametrikin...
Jos meillä on binääristringi 0101010101010101b (heksadesimaali 5555h), ja se annetaan parametrina LINE:lle, piirtää käsky vain viivan (tai laatikon, toimii vain reunojen kanssa) joka toisen pikselin.
Eli:
LINE (50, 50)-(100, 100), 5, B, 21845 ' Täyttämätön violetti nelikulmio, piirretään joka toinen piste
Aihe on jo aika vanha, joten et voi enää vastata siihen.