The beauty of z^2 + c

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

The beauty of z^2 + c

Beitrag von remi_meier »

Hab das mal beim Experimentieren mit Mandelbrots Menge gefunden und
nun noch animiert. Viel Spass beim Zuschauen.
(bewegt die Maus über dem Fenster wenns stoppt)

Code: Alles auswählen

#S = 512
img = CreateImage(#PB_Any, #S, #S)


OpenWindow(0, 200, 200, #S, #S, "Test")
CreateGadgetList(WindowID(0))
ImageGadget(0, 0, 0, #S, #S, ImageID(img))


anzFelder.l = #S
aktseite.f = 2.5
ecke_re.f = -1.65
ecke_im.f = -1.25
spalt.f = aktseite / anzFelder
Repeat
  StartDrawing(ImageOutput(img))
  Box(0, 0, anzFelder, anzFelder, 0)
  ecke_re + 0.0001
  For n.l = 0 To anzFelder - 1 Step 11
    c_re.f = ecke_re + n * spalt
    For m.l = 0 To anzFelder - 1 Step 11
      c_im.f = ecke_im + m * spalt
      
      z_re.f = 0
      z_im.f = 0
      
      zaehler.l = 0
      Repeat
        t.f = 2 * z_re * z_im + c_im
        z_re = z_re * z_re - z_im * z_im + c_re
        z_im = t
        
        x = (z_re - ecke_re) / spalt
        y = (z_im - ecke_im) / spalt
        If x >= #S Or y >= #S Or x < 0 Or y < 0
        Else
          Plot(x, y, zaehler * 1.27)
        EndIf
        
        zaehler + 1
      Until zaehler > 200
    Next
  Next
  StopDrawing()
  
  SetGadgetState(0, ImageID(img))
Until WaitWindowEvent() = #PB_Event_CloseWindow
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Beitrag von SoS »

Hey remi,schaut gut aus :allright:

Setze doch in die Klammern von WaitWindowEvent() einen Wert (z.b. 20) rein,dann brauch man nicht mit der Maus rumrudern. :wink:
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Danke
Ich für meinen Teil mag es so, da ich so das Bild in meiner Geschwindigkeit
weiterlaufen lassen kann. :)
Antworten