Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Kuvan pyörittäminen

Sivun loppuun

Antti Laaksonen [21.04.2002 13:48:40]

#

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

Gevil [23.04.2002 17:37:50]

#

mikähän tässä nyt mättää.. ku en saa toimiin.. hö

Jake [23.04.2002 21:06:47]

#

No kyllä on hidas!

TIC [23.04.2002 21:54:34]

#

Kyllä tällä 1700mhz toimii hyvin :)
Mutta mutta, kuvaan tulee reikiä!

HaRa [24.04.2002 21:44:53]

#

C:llä pystys ohjelmoimaan nopeamman... ;P

TIC [24.04.2002 21:47:01]

#

HaRa --> Teeppäs sellanen.

Antti Laaksonen [26.04.2002 17:07:08]

#

Niin pystyisi VB:lläkin. Taidanpa tehdä viikonloppuna parannetun version, tee sinä C:llä ja sitten verrataan...

(nimetön) [02.08.2002 14:20:06]

#

kuvaan ei tuu reikiä jos algoritmisesti uuden kuvan
(sen joka on pyöritetty) jokaiselle pikselille etsitään vanhasta kuvasta vastaava pikseli

miiro [22.12.2003 10:32:01]

#

tosi hidas mut mul onki hidas kone muutenki

Puhveli [26.04.2004 16:38:19]

#

on tosiaan hidas, mutta pienemmillä kuvilla ton Stepin voi tosiaan jättää pieneks. ja paremmin mulla toimii kun antti laaksosen vastaava :D


Sivun alkuun

Vastaus

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

Tietoa sivustosta