Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB pyörivä objekti (VB6)

Falcon [02.07.2003 21:46:31]

#

Miten saan objektin(vaikka ympyrän) kiertämään kehää?
En osaa tehdä muuten kuin että se kulkee ensin oikealle, sitten oikealle yläviistoon...

jouku [02.07.2003 21:56:09]

#

Enpä tässä paljoo Qbasiccii harjoitellu mutta kyllä musta varmaan jotain irtoo! Kökkönä koodina eka pistät sen liikkuu vaikka ylös ja sitten oikeelle ja sitten alas ja sitten vasemmalle ja sitten

Gotolla

pistät se uudestaan liikkuu.
Ja niin se liikkuu kehää. En muista tätä liikkumista joten en voi antaa essarii. Että siinä. moi!

jouku [02.07.2003 22:00:24]

#

ai niin ethän osannu liikuttaa sitä. Höm. Katoppa googlella liikkuminen (Qbasicin liikkuminen)

odys [02.07.2003 22:01:09]

#

Trigonometriallahan tämä onnistuu..
Sin() ja Cos() tulevat hyödyllisiksi, sekä pii..
Esim

Private Sub Form_Activate()
    pii = 4 * Atn(1)
    OrigoX = 1500
    OrigoY = 1500
    sade = 1000
    For i = 0 To 360 Step 0.01
        Line (OrigoX, OrigoY)-(x, y), Form1.BackColor ' pyyhitään vanha viiva
        x = Sin(i * pii / 180) * sade + OrigoX
        y = Cos(i * pii / 180) * sade + OrigoY
        Line (OrigoX, OrigoY)-(x, y), sade
        DoEvents
    Next i
End Sub

Private Sub Form_Unload(Cancel As Integer)
    End ' Ohjelma sulkeutuu varmasti
End Sub

Antti Laaksonen [02.07.2003 22:14:46]

#

Jep, tässä vielä QBasic-versio Jopen koodista. Ympyrä kiertää näytön keskipistettä, kunnes käyttäjä painaa Esc. Ympyrän paikan laskeminen perustuu trigonometriaan. FOR-silmukassa käydään läpi kaikki kulmat radiaaneina (2 * pii = 360°) ja ympyrän sijainti lasketaan SIN- ja COS-funktioiden avulla sopivien kertoimien kera.

Kuva kopioidaan taulukkoon GET-komennolla ja piirretään näytölle PUT-komennolla. Kaksi peräkkäistä PUT-komentoa poistavat kuvan (XOR-vertailu). WAIT &H3DA, 8 aiheuttaa pienen viiveen ja vähentää vilkkumista. INKEY$ palauttaa viimeksi painetun näppäimen ja CHR$(27) on Escin tunnus.

SCREEN 13

CIRCLE (5, 5), 5, 1
PAINT (5, 5), 3, 1

DIM kuva(10 * 10) AS INTEGER
GET (0, 0)-(10, 10), kuva

CLS

DO
   FOR i! = 0 TO 2 * 3.14159 STEP .01
      x% = 160 + SIN(i!) * 50
      y% = 100 + COS(i!) * 50
      IF vx% <> 0 THEN PUT (vx%, vy%), kuva
      PUT (x%, y%), kuva
      vx% = x%
      vy% = y%
      WAIT &H3DA, 8
   NEXT
LOOP UNTIL INKEY$ = CHR$(27)

Katso myös: https://www.ohjelmointiputka.net/koodivinkit/23755-qb-ympyrä-trigonometrialla

Vastaus

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

Tietoa sivustosta