Ich hab nen bissel experimentiert, und da ist was ganz lustiges rausgekommen:
Spoiler anzeigen
$user32 = DllOpen("user32.dll")
$gdi32 = DllOpen("gdi32.dll")
$w = 400
$h = 400
Global $pi = 4 * ATan(1)
[/autoit] [autoit][/autoit] [autoit]$hgui = GUICreate("Kleeblatt")
$hdc_gui = getdc($hgui)
GUISetState()
For $x = 1 To $w
For $y = 1 To $h
$r = Sqrt((($w / 2) - $x) ^ 2 + (($h / 2) - $y) ^ 2) / 190
$p = atan2(($w / 2) - $x, ($h / 2) - $y)
$l = $r / (((1 + Cos(4 * $p)) ^ 0.125) - (1 / 40 * (1 + Cos(8 * $p)) ^ 2))
$col = Int(1 / 5 * (2 - $l) ^ 0.215 * 4 + $l ^ 14 * 1 + 3 * $r * 256) * 256
pix($hdc_gui, $x, $y, $col)
Next
Next
While GUIGetMsg() <> -3
WEnd
Func atan2($y, $x)
return (2 * ATan($y / ($x + Sqrt($x * $x + $y * $y))))
EndFunc ;==>atan2
Func pix($dc, $x, $y, $color) ;pixel mit farbe an koordinaten setzen
DllCall($gdi32, "long", "SetPixel", "long", $dc, "long", $x, "long", $y, "long", $color)
EndFunc ;==>pix
Func GetDC($handle)
$dc = DllCall($user32, "int", "GetDC", "hwnd", $handle)
Return $dc[0]
EndFunc ;==>GetDC