Miten saan objektin(vaikka ympyrän) kiertämään kehää?
En osaa tehdä muuten kuin että se kulkee ensin oikealle, sitten oikealle yläviistoon...
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!
ai niin ethän osannu liikuttaa sitä. Höm. Katoppa googlella liikkuminen (Qbasicin liikkuminen)
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
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/
Aihe on jo aika vanha, joten et voi enää vastata siihen.