Tämä esimerkki näyttää yhden tavan kääntää kuvaa tietyn asteluvun verran. Koodi on lyhyt - mutta hidas, joten optimointivaraa riittää. Formilla on oltava kaksi PictureBoxia (pL, jossa on itse kuva ja pK joka on hieman pL:tä suurempi), CommandButton (Command1) ja TextBox (tK johon kirjoitetaan kulman suuruus asteina)
Private Sub Command1_Click() Dim keskix As Double, keskiy As Double Dim pii As Double, kulma As Double Dim leveys As Double keskix = pK.Width / 2 keskiy = pK.Height / 2 lkeskix = pL.Width / 2 lkeskiy = pL.Height / 2 leveys = pL.Width pii = 4 * Atn(1) kulma = CDbl(tK) * (pii / 180) 'kulma radiaaneiksi pK.Cls For j = leveys To 0 Step -1 For i = 0 To 2 * pii Step 0.007 'mitä pienempi, sen tarkempi vari = pL.Point(lkeskix + Sin(i + kulma) * j, lkeskiy + Cos(i + kulma) * j) If vari <> -1 Then pK.PSet (keskix + Sin(i) * j, keskiy + Cos(i) * j), vari DoEvents Next Next End Sub
mikähän tässä nyt mättää.. ku en saa toimiin.. hö
No kyllä on hidas!
Kyllä tällä 1700mhz toimii hyvin :)
Mutta mutta, kuvaan tulee reikiä!
C:llä pystys ohjelmoimaan nopeamman... ;P
HaRa --> Teeppäs sellanen.
Niin pystyisi VB:lläkin. Taidanpa tehdä viikonloppuna parannetun version, tee sinä C:llä ja sitten verrataan...
kuvaan ei tuu reikiä jos algoritmisesti uuden kuvan
(sen joka on pyöritetty) jokaiselle pikselille etsitään vanhasta kuvasta vastaava pikseli
tosi hidas mut mul onki hidas kone muutenki
on tosiaan hidas, mutta pienemmillä kuvilla ton Stepin voi tosiaan jättää pieneks. ja paremmin mulla toimii kun antti laaksosen vastaava :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.