Von Mathealpha und PureBasic

This commit is contained in:
2026-01-04 16:23:42 +01:00
parent 0eb5cb414d
commit d3236ec862
2 changed files with 56 additions and 0 deletions

BIN
17-Chaostheorie.pdf Normal file

Binary file not shown.

56
Mandelbrot.pb Normal file
View 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