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 Submikä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.