arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 25.11.2013, 15:01 Titel: PlgBlt in Freebasic nutzen. |
|
|
Hallo, guten Tag.
Ich möchte bitte mal diese Routine benutzen:
Code: | Declare Function PlgBlt Lib "gdi32.dll" ( _
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 |
Ich habe :
Code: | scr_auto=ImageCreate(100,100)
src_auto=ImageCreate(100,100) |
Wie bringe ich die beiden Images in die Function als hSrc As Dword, hDest As Dword?
Wie wird bitte diese Function nach Freebasic umgesetzt :
Code: |
Function RotateImage(winkel As Single, hSrc As Dword, hDest As Dword) As Long
Dim PlgPts(0 To 2) As PointAPI
Local XCenter, YCenter As Long
XCenter = 149 : YCenter = 149
' newx = XCenter + (x - XCenter) * Cos(theta) - (y - YCenter) * Sin(theta)
' newy = YCenter + (x - XCenter) * Sin(theta) + (y - YCenter) * Cos(theta)
PlgPts(0).X = XCenter + (0 - XCenter) * Cos(theta) - (0 - YCenter) * Sin(theta) 'upper-left in target
PlgPts(0).Y = YCenter + (0 - XCenter) * Sin(theta) + (0 - YCenter) * Cos(theta)
PlgPts(1).X = XCenter + (299 - XCenter) * Cos(theta) - (0 - YCenter) * Sin(theta) 'upper-right in target
PlgPts(1).Y = YCenter + (299 - XCenter) * Sin(theta) + (0 - YCenter) * Cos(theta)
PlgPts(2).X = XCenter + (0 - XCenter) * Cos(theta) - (299 - YCenter) * Sin(theta) 'lower left in target
PlgPts(2).Y = YCenter + (0 - XCenter) * Sin(theta) + (299 - YCenter) * Cos(theta)
PlgBlt(hDest, PlgPts(0), hSrc, 0, 0, 300, 300, 0&, 0, 0) ' Draw rotated image
End Function
|
Ich möchte bitte einmal wissen, wie man so etwas in Freebasic machen kann.
Danke.
Gruss |
|