Von Mathealpha und PureBasic
This commit is contained in:
BIN
17-Chaostheorie.pdf
Normal file
BIN
17-Chaostheorie.pdf
Normal file
Binary file not shown.
56
Mandelbrot.pb
Normal file
56
Mandelbrot.pb
Normal file
@@ -0,0 +1,56 @@
|
||||
EnableExplicit
|
||||
|
||||
Define.i width = 2000, height = 1400
|
||||
Define.i x, y, iteration, max_iteration = 500
|
||||
Define.d zx, zy, cx, cy, temp_zx
|
||||
Define.i color
|
||||
|
||||
; Fenster öffnen
|
||||
If OpenWindow(0, 0, 0, width, height, "Mandelbrot - macOS Fix", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
|
||||
|
||||
; Wir nutzen ein Canvas statt eines Screens, das vermeidet die AGL-Abhängigkeit
|
||||
CanvasGadget(0, 0, 0, width, height)
|
||||
|
||||
; Zeichnen auf dem Canvas starten
|
||||
If StartDrawing(CanvasOutput(0))
|
||||
For y = 0 To height - 1
|
||||
For x = 0 To width - 1
|
||||
|
||||
; Koordinaten-Transformation
|
||||
cx = (x - width / 1.5) * 3.0 / width
|
||||
cy = (y - height / 2.0) * 3.0 / width
|
||||
|
||||
zx = 0
|
||||
zy = 0
|
||||
iteration = 0
|
||||
|
||||
; Die Mandelbrot-Formel: z = z^2 + c
|
||||
While (zx * zx + zy * zy < 4) And (iteration < max_iteration)
|
||||
temp_zx = zx * zx - zy * zy + cx
|
||||
zy = 2 * zx * zy + cy
|
||||
zx = temp_zx
|
||||
iteration + 1
|
||||
Wend
|
||||
|
||||
; Farbgebung
|
||||
If iteration = max_iteration
|
||||
Plot(x, y, RGB(0, 0, 0))
|
||||
Else
|
||||
color = iteration * 255 / max_iteration
|
||||
Plot(x, y, RGB(color, color / 2, 255 - color))
|
||||
EndIf
|
||||
|
||||
Next x
|
||||
Next y
|
||||
StopDrawing()
|
||||
EndIf
|
||||
|
||||
; Einfache Event-Schleife
|
||||
Repeat
|
||||
Define Event = WaitWindowEvent()
|
||||
Until Event = #PB_Event_CloseWindow
|
||||
EndIf
|
||||
; IDE Options = PureBasic 6.21 - C Backend (MacOS X - arm64)
|
||||
; CursorPosition = 2
|
||||
; EnableXP
|
||||
; DPIAware
|
||||
Reference in New Issue
Block a user