Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Selvennys DRAW-käskyyn

Dj Wolf [02.07.2002 18:09:37]

#

*QB* Tämä ohjelma tarjoaa Piirrä -subin, jolle ilmoitetaan DRAW -käskystä tutut käskyt (esim. "U25 D50") sekä x,y -koordinaatit, kuten myös kulma ja väri.
Ei huolta, kaikki selviää kyllä koodista.

DECLARE SUB Piirra (komento$, x!, y!, kulma!, vari!)
CLS
SCREEN 13 'toimii muissakin, esim SCREEN 12, SCREEN 9 jne.
vari = 3
kulma = 0
x = 100
y = 100
IF kulma > 360 THEN kulma = 0 ELSE 'nämä kannattaa pistää mukaan,
IF kulma < 0 THEN kulma = 360 ELSE 'ainakin jos teet silmukan.
'seuraava piirtää vasemmalle 10, ylös 20, oikealle 30 ja alas 40 pix.
Piirra "L10 U20 R30 D40", x, y, kulma, vari

SUB Piirra (komento$, x, y, kulma, vari)
DRAW "BM" + STR$(x) + "," + STR$(y) 'liikutaan oikeaan kohtaan,
DRAW "Ta" + STR$(INT(kulma))        'käännytään annetut asteet,
DRAW "C" + STR$(vari) + " x" + VARPTR$(komento$)'ja piirretään.
END SUB

(nimetön) [18.07.2002 15:25:11]

#

kulma = (kulma+(ABS(kulma)\360+1)*360) mod 360

auttaa eroon noista kahdesta rajoittavasta if-lauseesta

Grez [18.06.2019 14:28:54]

#

Hauskoja nää ikivanhojen vinkkien "nostot".

lainaus:

kulma = (kulma+(ABS(kulma)\360+1)*360) mod 360

auttaa eroon noista kahdesta rajoittavasta if-lauseesta

Mielestäni selkeämpi ja nopeampi versio olisi:

kulma = ((kulma mod 360) + 360) mod 360

Jopa seuraavakin riittäisi:

kulma = kulma mod 360 'Draw hyväksyy Ta:lle arvot -360 - +360

Täytyy kuitenkin huomata, että niin edellisen kirjoittajan kuin minunkaan koodit eivät tee tasan samaa kuin alkuperäisen koodivinkin if-lauseet.

Metabolix [18.06.2019 15:04:19]

#

Grez kirjoitti:

Hauskoja nää ikivanhojen vinkkien "nostot".

Tuleepa jollain aikataululla tarkastettua vanhat vinkit ja eroteltua jyvät akanoista. Monet vanhat QB-vinkit tosiaan joutavat romukoppaan.

Vastaus

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

Tietoa sivustosta