Saisinkos pientä esimerkkiä kellon viisareiden piirtämisestä? Luulisin, että funktio sin liittyy tähän jotenkin, mutta en ole ikinä sen toimintaa ymmärtänyt. Jos joku voisi siitäkin vähän kertoa :P
Edit: Ja VB:llehän tämä oli..
Sin-funktio on trigonometriaa, joka opetetaan peruskoulussa vasta 9. luokalla. (minä tosin käytin siniä hyväkseni jo paljon sitä ennen) Ohjelmoinnissa sinistä hyötyy eniten siinä, että sillä saadaan piirrettyä ympyrän. Ensin sinulla pitää olla tiedossa keskipiste, josta viisari lähtee:
x = 200 y = 100 'muista pistää AutoRedraw Trueksi ja Twipit Pixeleiksi ScaleModesta
Seuraavaksi pitäisi saada tietää viisarin toinen pää, joka lasketaan näin:
x2 = x + Sin(kulma) * ViisarinPituus y2 = y - Cos(kulma) * ViisarinPituus
Tuo kulma, joka annetaan ei ole asteina, vaan radiaaneina. Lisäämällä tuota kulmaa, saat kuitenkin viisarin kääntymään. Jos haluat käyttää asteita, muuta tuo näin:
rad = Atn(1) * 4 / 180 x2 = x + Sin(kulma * rad) * ViisarinPituus y2 = y - Cos(kulma * rad) * ViisarinPituus
Nyt voit käyttää kulmassa asteita. Voit laskea oikean kulman tuntiviisarille kertomalla tuntien määrän 30:llä. Tämä tarkoittaa siis, että jos haluat siirtää viisarin vaikkapa kello viiden kohtaan, muutat kulmaksi 150.
Ja viivan osaat varmaan Line-käskyllä vetää:
Line (x, y)-(x2, y2),0
Sitten teet vain saman toiselle viisarille.
Siinäpä perusteellinen selitys! Kiitokset hunajavohveli :)
Paha hunajavohveli! Ehdit tehä ennen mua :D
https://www.ohjelmointiputka.net/koodivinkit/
edit: painiskelin ite joskus tollasen onkelman kanssa ja siitähän sitten syntyi tollanen ohjelma :D
Mulla oli kerran saman tyyppinen ongelma kuin kenkulla, mutta mulla oli taustakuvana lehdestä scannattu kellon taulu, ja yritin vielä kopioida viisarinkin...
Yritin sitä viisaria sitten piirtää eri kulmiin, mutta viisarin kääntäminen bittitasolla on hidasta (vaikeaa).
Onko kellään hyvää ideaa kuinka esim . viisarin saisi aina oikein päin ko kellon ajan mukaan?? (Hunajavuhveli???)
Yksi tapa olisi tietysti muokata käsin jokainen aste, mutta silloin tulisi liikaa kuva-kontrolleja..
JoreSoft kirjoitti:
Yritin sitä viisaria sitten piirtää eri kulmiin, mutta viisarin kääntäminen bittitasolla on hidasta (vaikeaa).
Onko kellään hyvää ideaa kuinka esim . viisarin saisi aina oikein päin ko kellon ajan mukaan??
Olisiko tästä koodivinkistä apua: https://www.ohjelmointiputka.net/koodivinkit/
JoreSoft kirjoitti:
Onko kellään hyvää ideaa kuinka esim . viisarin saisi aina oikein päin ko kellon ajan mukaan??
Pystyisitkö piirtämään viisarin sopivan muotoisen nelikulmion avulla? WinAPIssa on funktio Polygon, jolla tuollaisen kuvion voi helposti piirtää täytettynäkin. Valmiin kuvan pyörittäminen on hidasta, ja jälki ei välttämättä ole hyvää.
JoreSoft kirjoitti:
Onko kellään hyvää ideaa kuinka esim . viisarin saisi aina oikein päin ko kellon ajan mukaan?? (Hunajavuhveli???)
Pikseleistä muodostuvaa kuvaa en kyllä osaa käännellä, mutta Line-käskyllä olen aina vetänyt viisarit. Tietysti, jos niistä haluaa hienompia, ja enemmän viivoja, niin kyllä minä tuon saman Sinillä ja Cosinilla hoitaisin. Tuota Polygon-API-funktiota en tunne, mutta se ajanee saman asian.
Kiitti! Yritän pärjätä tällä
Aihe on jo aika vanha, joten et voi enää vastata siihen.