Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Rotate

tgunner [27.06.2006 19:01:34]

#

'rotate.bas
'Tyhjennetään ruutu, daa.
CLS
'320*200*256.
SCREEN 13
'Muuttujat joita tarvitaan.
DIM x1, x2, y1, y2, x3, y3, x4, y4 AS INTEGER
DIM kulma AS INTEGER
kulma = 0
'Pääloop.
WHILE (INKEY$ <> CHR$(27))
        'Vähän normaalia nopeampi CLS.
        LINE (0, 0)-(319, 199), 0, BF
        'Annetaan arvot pisteille jotka yhdistetään.
        'Edessä oleva "100 + ..." antaa kuviolle 100px
        'lisätilaa pyörimiseen, jos sen jättää pois, kuvio
        'pyörii aivan ruudun reunassa.
        x1 = 100 + COS(kulma * .0175#) * 50
        y1 = 100 + SIN(kulma * .0175#) * 50
        'Ja kaikki ovelat matemaatikot myös huomaavat, että
        'x ja y arvot lasketaan sinin ja cosinin avulla
        'kertomalla kulma ns. hengellä, eli 0.0175:llä.
        'Lopussa oleva "* 50" tarkoittaa kuvion kokoa.
        x2 = x1 + 90
        y2 = y1 + 90

        x3 = x1 + 180
        y3 = y1 + 180

        x4 = x1 + 270
        y4 = y1 + 270

        'Yhdistetään pisteet.
        LINE (x1, y1)-(x2, y2), 2
        LINE (x2, y2)-(x3, y3), 2
        LINE (x3, y3)-(x4, y4), 2
        LINE (x4, y4)-(x1, y1), 2

        'Kasvatetaan kulmaa pyörimisliikkeen saamiseksi.
        kulma = kulma + 1
        'Pyörähdys ympäri.
        IF (kulma >= 360) THEN kulma = 0
        'Tässä on asian avain!
        'Jos ohjelmaa ei hidasta, niin se vilkkuu ja osaa
        'kuviosta ei näy! Minä käytin hidastuksena tätä:
        a = TIMER
        DO: LOOP UNTIL TIMER - a > 0.01
        'Mutta FreeBASICissa tämä:
        '            WAIT &H3DA, 8
        'Oli todella hyvä. Hidastustavan voi vaihtaa oman
        'mielensä mukaan.
WEND
END

Vastaus

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

Tietoa sivustosta