'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
Aihe on jo aika vanha, joten et voi enää vastata siihen.