diff --git a/17-Chaostheorie.pdf b/17-Chaostheorie.pdf new file mode 100644 index 0000000..223832a Binary files /dev/null and b/17-Chaostheorie.pdf differ diff --git a/Mandelbrot.pb b/Mandelbrot.pb new file mode 100644 index 0000000..565acfd --- /dev/null +++ b/Mandelbrot.pb @@ -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 \ No newline at end of file