Updates a matrix with the product of itself and a translation matrix
#include <GDIPlus.au3>
_GDIPlus_MatrixTranslate ( $hMatrix, $fOffsetX, $fOffsetY [, $bAppend = False] )
$hMatrix | Handle to a Matrix object |
$fOffsetX | Amount of pixels to add along the x-axis |
$fOffsetY | Amount of pixels to add along the y-axis |
$bAppend | [optional] Specifies the order of the multiplication: True - Specifies that the translation matrix is on the left False - Specifies that the translation matrix is on the right |
Success: | True. |
Failure: | False and sets the @error flag to non-zero, @extended may contain GPSTATUS error code ($GPIP_ERR* see GPIPlusConstants.au3). |
Search GdipTranslateMatrix in MSDN Library.
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
; Create GUI
Local $hWnd = GUICreate("GDI+ Example (" & @ScriptName & ")", 400, 300)
GUISetState(@SW_SHOW)
; Start GDI+
_GDIPlus_Startup()
Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hWnd)
Local $hMatrix = _GDIPlus_MatrixCreate()
; Move the matrix half the width and helf the height towards the center
_GDIPlus_MatrixTranslate($hMatrix, 200, 150)
_GDIPlus_MatrixRotate($hMatrix, 45)
_GDIPlus_GraphicsSetTransform($hGraphics, $hMatrix)
Local $hPen = _GDIPlus_PenCreate(0xFF00FF00, 10)
_GDIPlus_GraphicsClear($hGraphics)
; Draw around upper left corner of the GUI, but since we have translated the matrix the object will appear at the center of GUI
_GDIPlus_GraphicsDrawRect($hGraphics, -50, -50, 100, 100, $hPen)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Clean up resources
_GDIPlus_PenDispose($hPen)
_GDIPlus_MatrixDispose($hMatrix)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_Shutdown()