Kuvan pyörittäminen ykköstä ja kakkosta nopeampi kuvan kääntäminen. Tarvitsee kaksi Picture boksia, eikä muuta. Kuva laitetaan ykkös picture boksiin ja laita kummankin picture boksin AutorRedraw True:ksi.
Voit Ladata lähdekoodin Tästä
Edit: Pari korjausta tehty.
Option Explicit Private Type POINTAPI x As Long y As Long End Type Dim Pt(0 To 2) As POINTAPI Dim kulma As Double Private Const PI As Double = 3.14159265358979 Private Declare Function PlgBlt Lib "gdi32" (ByVal hdcDest As Long, lpPoint As POINTAPI, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long) As Long Private Sub Form_Load() kulma = 45 'käännettävä kulman suuruus Rotate Picture2, Picture1, kulma / 100 End Sub Private Sub Rotate(pic1 As PictureBox, pic2 As PictureBox, Rotate As Double) Dim a As Integer 'Kääntö prosessi Pt(0).x = 0 Pt(0).y = 0 Pt(1).x = pic2.Width Pt(1).y = 0 Pt(2).x = 0 Pt(2).y = pic2.Height For a = 0 To 2 Pt(a) = RotateP(pic2.Width / 2, pic2.Height / 2, Pt(a), Rotate) Next PlgBlt pic1.hDC, Pt(0), pic2.hDC, 0, 0, pic2.Width, pic2.Height, ByVal 0&, ByVal 0&, ByVal 0& pic1.Refresh End Sub Private Function RotateP(ByRef x As Long, ByRef y As Long, ByRef Point As POINTAPI, Rotate As Double) As POINTAPI Dim Tmp1 As Double Dim Tmp2 As Double Tmp1 = Point.x - x Tmp2 = Point.y - y Point.x = Tmp1 * Cos(Rotate) - Tmp2 * Sin(Rotate) Point.y = Tmp1 * Sin(Rotate) + Tmp2 * Cos(Rotate) Point.x = Point.x + x Point.y = Point.y + y RotateP = Point End Function
en saanut toimimaan..
ei herjaa mitään mutta ei myöskään toimi.
käytössä vb6
Formin ScaleMode pikseleiksi, niin toimii.
Mukavan vauhdikas.
/me tykkää
Joo, kiva on mutta hieman epätarkaksi menee...
täh, ei toimi alkuunkaan. Pitäskö Pictureboksien nimiä muuttaa?
Öö-ö... ei toimi mullakaan. Pitääkö tehdä jotain bonusta vielä? Koodikin näyttää niin kummalliselta etten tajua miten toi toimii :P
Mulla ei käänny, mutta ei herjaakkaan.. scalemode pixeleinä, on autoreddrawit ja vb6... ei käänny sitten millään.. mikähän näppäin lienee? xD.. voisin vaikka soveltaaa tätä mun johonkin projektiin..
lainaus:
Mulla ei käänny, mutta ei herjaakkaan.. scalemode pixeleinä, on autoreddrawit ja vb6... ei käänny sitten millään.. mikähän näppäin lienee? xD.. voisin vaikka soveltaaa tätä mun johonkin projektiin..
sama täällä ja mulla on vbcce5
Öh höh ei toimi
Mulla ainakin toimii, VB 6, PictureBoxien nimet normaalit ja AutoRedraw truena + formin scalemode pixeleinä.
no-oho sehän meni ja toimi (ku ensi vähä nolas ittensä)
Aihe on jo aika vanha, joten et voi enää vastata siihen.