[VB6] - rodar pixels\imagens

Cambalinho

Power Member
quais são as formulas matematicas para rodar 1 imagem\pixels?
eu achei estas: http://homepages.inf.ed.ac.uk/rbf/HIPR2/rotate.htm
mas não funcionam:(
alguem me pode explicar o porque?
Código:
Option Explicit

Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

Private Sub Command1_Click()
    Dim X0 As Double
    Dim X1 As Double
    Dim X2 As Double
    
    Dim Y0 As Double
    Dim Y1 As Double
    Dim Y2 As Double
    
    Dim Angle As Double
    
    Angle = Val(Text1.Text)
    
    X0 = Picture1.ScaleWidth / 2
    Y0 = Picture1.ScaleHeight / 2
    For Y1 = 0 To Picture1.ScaleHeight - 1
        For X1 = 0 To Picture1.ScaleWidth - 1
            X2 = Cos(Angle) * (X1 - X0) - Sin(Angle) * (Y1 - Y0) + X0
            Y2 = Sin(Angle) * (X1 - X0) + Cos(Angle) * (Y1 - Y0) + X0
            SetPixel Picture2.hdc, X2, Y2, GetPixel(Picture1.hdc, X1, X2)
        Next X1
    Next Y1
    Picture2.Refresh
End Sub
mostra-me alguns pixels em branco:(
(eu preciso de converter isto para poder usar nas funçoes DIB's... obrigado)
 
Back
Topo