Jos trigonometriset funktiot sin ja cos tuntuvat oudoilta, kannattaa katsastaa tämä QBasic-esitys. Se näyttää kädestä pitäen, kuinka ympyrän piirtäminen kyseisillä funktioilla tapahtuu. Hyvää joulua tämän koodinpätkän merkeissä!
'omistettu progurulle DECLARE SUB NaytaTeksti (teksti AS STRING, x AS INTEGER, y AS INTEGER, p AS INTEGER) DECLARE SUB Piirrakehys () DECLARE SUB Asetapaletti (i AS INTEGER, r AS INTEGER, g AS INTEGER, B AS INTEGER) DECLARE SUB Odota () SCREEN 12 Piirrakehys NaytaTeksti "Piirretään koordinaatisto väliltä (-10,-10) ja (10,10).", 3, 2, 1 DIM i AS INTEGER Asetapaletti 7, 20, 20, 20 COLOR 7 FOR i = 100 TO 300 STEP 10 LINE (100, i)-(300, i) LINE (i, 100)-(i, 300) WAIT &H3DA, 8 NEXT COLOR 15 LINE (100, 100)-(300, 300), , B FOR i = 100 TO 300 PSET (200, i) PSET (i, 200) WAIT &H3DA, 8 NEXT Odota NaytaTeksti "Määrätään ympyrän keskipisteeksi (0,0) ja säteeksi 4. ", 3, 2, 1 COLOR 2 CIRCLE (200, 200), 2 PAINT (200, 200), 2, 2 Odota DIM pii AS SINGLE, kohta AS SINGLE pii = 4 * ATN(1) kohta = 0 * pii / 180 NaytaTeksti "Lasketaan pisteen arvo 0ø-kulmassa radiaaneina: ", 3, 2, 1 NaytaTeksti " 0 * pii / 180 =" + STR$(kohta) + " ", 3, 3, 0 Odota DIM x AS SINGLE, y AS SINGLE x = SIN(kohta) * 4 y = COS(kohta) * 4 NaytaTeksti " ", 3, 3, 0 NaytaTeksti "Lasketaan pisteen x ja y ja piirretään se kuvaan: ", 3, 2, 1 NaytaTeksti " x = SIN(0) * 4 =" + STR$(x) + " ", 3, 3, 0 NaytaTeksti " y = COS(0) * 4 =" + STR$(y) + " ", 3, 4, 0 CIRCLE (200 + x * 20, 200 + y * 20), 2, 2 PAINT (200 + x * 20, 200 + y * 20), 2, 2 Odota NaytaTeksti " ", 3, 3, 0 NaytaTeksti " ", 3, 4, 0 NaytaTeksti "Tehdään sama asia 10ø kanssa: ", 3, 2, 1 kohta = 10 * pii / 180 NaytaTeksti " 10 * pii / 180 =" + STR$(kohta) + " ", 3, 3, 0 x = SIN(kohta) * 4 y = COS(kohta) * 4 NaytaTeksti " x = SIN(0) * 4 =" + STR$(x) + " ", 3, 4, 0 NaytaTeksti " y = COS(0) * 4 =" + STR$(y) + " ", 3, 5, 0 CIRCLE (200 + x * 20, 200 + y * 20), 2, 2 PAINT (200 + x * 20, 200 + y * 20), 2, 2 Odota NaytaTeksti " ", 3, 3, 0 NaytaTeksti " ", 3, 4, 0 NaytaTeksti " ", 3, 5, 0 NaytaTeksti "Piirretään pisteet asteilla 20ø,30ø,40ø,...,340ø: ", 3, 2, 1 DIM a AS SINGLE FOR i = 20 TO 350 STEP 10 kohta = i * pii / 180 x = SIN(kohta) * 4 y = COS(kohta) * 4 CIRCLE (200 + x * 20, 200 + y * 20), 2, 2 PAINT (200 + x * 20, 200 + y * 20), 2, 2 a = TIMER DO WHILE a = TIMER LOOP NEXT Odota NaytaTeksti "Ympyrä on valmis: ", 3, 2, 1 CIRCLE (200, 200), 80, 2 END SUB Asetapaletti (i AS INTEGER, r AS INTEGER, g AS INTEGER, B AS INTEGER) OUT &H3C8, i OUT &H3C9, r OUT &H3C9, g OUT &H3C9, B END SUB SUB NaytaTeksti (teksti AS STRING, x AS INTEGER, y AS INTEGER, p AS INTEGER) DIM i AS INTEGER Asetapaletti 1, 0, 0, 0 COLOR 1 IF p = 1 THEN FOR i = 0 TO 63 Asetapaletti 1, i, i, i LOCATE y, x: PRINT teksti WAIT &H3DA, 8 NEXT ELSE Asetapaletti 1, 63, 63, 63 LOCATE y, x: PRINT teksti END IF END SUB SUB Odota DO LOOP WHILE INKEY$ = "" END SUB SUB Piirrakehys DIM i AS INTEGER LOCATE 1: PRINT CHR$(201) + STRING$(78, CHR$(205)) + CHR$(187) FOR i = 2 TO 22 LOCATE i: PRINT CHR$(186) + SPACE$(78) + CHR$(186) NEXT LOCATE 23: PRINT CHR$(200) + STRING$(78, CHR$(205)) + CHR$(188) END SUB
Hyvä vinkki!
Harvinaisen hieno vinkki, tästä on minulle enemmän hyötyä kuin arvaattekaan....
Ahh, kivakiva! Eka rivi rulez ! :) Hyvä vinkkI!
jopas on muuten näppärä!
Hieno esimerkki. Havainnolistaa ympyrän piirron hitaasti pykälä pykälältä. En ollut aiemmin viitsinyt katsoa koko vinkkiä, kun olin ajatellut, että se vain piirtää tavallisen ympyrän SIN ja COS -fuktioilla.
no ny alakas vähä sin ja cos selijetä.
Extra-lyhyt versio niille, jotka eivät jaksa lukea läpi:
SCREEN 13 x = 160 'keskipiste y = 100 sade = 30 'ympyrän säde alkupiste = 0 'alkupiste loppupiste = 6.28 'loppupiste FOR piste = alkupiste to loppupiste step 0.1 PSET (x+(COS(piste)*sade),y+(SIN(piste)*sade)), 15 WAIT &H3DA,8 NEXT piste
Aihe on jo aika vanha, joten et voi enää vastata siihen.