Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Hallittua näytön täyttöä satunnaisilla pikseleillä

Grey [11.06.2004 18:49:44]

#

Näytön täyttäminen satunnaisilla pikseleillä ei liene vaikea operaatio. Eri asia on sitten se miten estää pikselin piirtymisen samaan kohtaan tai saada ohjelmasta tarpeeksi nopea. Tässä aliohjelmassa nuo kumpikin ongelmaa on ratkaistu. Koodi on testattu hidastuksen alla ja nopeus on ollut siedettävä. Lisäksi bonuksena on mukana pikselien väriskaalan määritys ^__^

-Grey-

'Noisea..
DECLARE SUB NOISE (Mincolor%, Maxcolor%)
SCREEN 7
SLEEP 1
 NOISE 0, 15 'Satunnaista pikselimössöä
SLEEP 1
 NOISE 1, 2 'kaksiväristä pikselimössöä
SLEEP 1
 NOISE 0, 0 'Yksiväristä pikselimössöä
SLEEP 1

SUB NOISE (Mincolor%, Maxcolor%)
RANDOMIZE 80000
DIM NoiseDim(80, 50) AS INTEGER
DO
 W$ = INKEY$
 A% = INT(RND * 80)
 B% = INT(RND * 50)
  IF NoiseDim(A%, B%) = 0 THEN
   FOR C% = 0 TO 240 STEP 80
    PSET (A% + C%, B%), INT((Maxcolor% - Mincolor% + 1) * RND + Mincolor%)
    PSET (A% + C%, B% + 50), INT((Maxcolor% - Mincolor% + 1) * RND + Mincolor%)
    PSET (A% + C%, B% + 100), INT((Maxcolor% - Mincolor% + 1) * RND + Mincolor%)
    PSET (A% + C%, B% + 150), INT((Maxcolor% - Mincolor% + 1) * RND + Mincolor%)
   NEXT
   OK% = OK% + 1
   NoiseDim(A%, B%) = 1
  END IF
 IF W$ <> "" THEN EXIT DO
IF OK% > 3999 THEN EXIT DO
LOOP
END SUB

nomic [12.06.2004 05:04:23]

#

tämähän oli varsin mukava esimerkki, pitkästä aikaa innostuin taas qb:sta :)
mietin että eikös toinen tapa luoda vastaavanlainen satunnaisjuttu ole:
pikseli ettii satunnaisen paikan jos sen kohdan väri on musta niin pikseli menee siihen jos väri onkin jokin muu niin pikseli siirtyy seuraavaan paikkaan jne...?
ja tuo vielä jonkin for-lausekkeen sisälle joka toistuu niin monesti kuin näytölle mahtuu pikseleitä...
itse olen miettinyt semmoista tapaa mutta ongelma iskeekin siinä että kuin tarkistetaan että mikä väri on kohdassa x,y?
:/
mutta tämä oli mukava esimerkki :)

hunajavohveli [12.06.2004 10:27:44]

#

lainaus:

mietin että eikös toinen tapa luoda vastaavanlainen satunnaisjuttu ole:
pikseli ettii satunnaisen paikan jos sen kohdan väri on musta niin pikseli menee siihen jos väri onkin jokin muu niin pikseli siirtyy seuraavaan paikkaan jne...?

Tuo sitä juuri hidastaisi. Mutta tämä algoritmi on siitä niin nerokas, että se ei näyttäisi arpovan ollenkaan samoja koordinaatteja, joten mitään tarkistusta ei tarvita. Grey selittikin asiasta minulle enemmän Messengerissä. Tuo RANDOMIZE 80000:kin on tarkaan valittu luku, jolla tuo tapahtuu nopeasti.

Gwaur [12.06.2004 15:45:24]

#

Ajattelin että olisi ollut pidempi kun koodia ei näkynyt kokonaan kuvausta luettaessa :)

sooda [13.06.2004 11:03:27]

#

Onpas nopea!

Bill Keltanen [14.06.2004 12:44:21]

#

Jee, kiva

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta