1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[VB6] - rodar pixels\imagens

Discussão em 'Programação' iniciada por Cambalinho, 16 de Junho de 2012. (Respostas: 0; Visualizações: 725)

  1. Cambalinho

    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)
     

Partilhar esta Página