Moin,
Habe eben etwas seltsames entdeckt.
Wenn man Den Stift nach innen ausrichtet wird bei GDI+ sehr unschön gezeichnet.
Wenn man Smoothing aus hat ist der Unterschied minimal.
Ist Dmoothing aber aktiviert ist der Kreis irgendwie wellig.
Kann man dieses Problem irgendwie umgehen ?
(mal abgesehen von dem Workaround den Kreis etwas kleiner zu zeichnen und die Ausrichtung mittig zu lassen.)
Spoiler anzeigen
#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Opt('GUIOnEventMode', 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Global $hGUI, $hGFX, $hBMP, $hBUF, $hPEN
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate('Test', 512, 512)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGFX = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hBMP = _GDIPlus_BitmapCreateFromGraphics(512, 512, $hGFX)
$hBUF = _GDIPlus_ImageGetGraphicsContext($hBMP)
_GDIPlus_GraphicsClear($hBUF, 0xFFFFFFFF)
_GDIPlus_GraphicsSetSmoothingMode($hBUF, 2)
$hPEN = _GDIPlus_PenCreate(0xFFFF00FF, 5)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsDrawEllipse($hBUF, 100, 100, 200, 200, $hPEN)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_PenSetAlignment($hPEN, 1)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsDrawEllipse($hBUF, 200, 200, 200, 200, $hPEN)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUISetOnEvent(-3, '_Exit', $hGUI)
GUIRegisterMsg(0xF, 'WM_PAINT')
OnAutoItExitRegister('_Freigeben')
WM_PAINT()
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW, $hGUI)
[/autoit] [autoit][/autoit] [autoit]While Sleep(100)
WEnd
Func _Freigeben()
_GDIPlus_GraphicsDispose($hBUF)
_GDIPlus_BitmapDispose($hBMP)
_GDIPlus_GraphicsDispose($hGFX)
_GDIPlus_PenDispose($hPEN)
_GDIPlus_Shutdown()
EndFunc
Func _Exit()
Exit
EndFunc
Func WM_PAINT()
_GDIPlus_GraphicsDrawImage($hGFX, $hBMP, 0, 0)
EndFunc