Фрактал Ньютона

 


Нашел разные исходники построения картинки и изменил расцветку:

Structure complex
  x.f
  y.f
EndStructure
iter=50
max.f=1000000
min.f=0.0000001
z.complex
t.complex
d.complex
Procedure egacol(ega.l)
  ;ega&15
  Select ega
Case 0:co=$000000
Case 1:co=$0000AA
Case 2:co=$00AA00
Case 3:co=$00AAAA
Case 4:co=$AA0000
Case 5:co=$AA00AA
Case 6:co=$AA5500
Case 7:co=$AAAAAA
Case 8:co=$555555
Case 9:co=$5555FF
Case 10:co=$55FF55
Case 11:co=$55FFFF
Case 12:co=$FF5555
Case 13:co=$FF55FF
Case 14:co=$FFFF55
Case 15:co=$FFFFFF
EndSelect
co=RGB((co>>16)&255,(co>>8)&255,co&255)
ega=(16-ega)*16
;co=RGB(ega,0,ega)
ProcedureReturn co
EndProcedure
If OpenWindow(0, 0, 0, 640, 480, "Newton pools fractal", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CanvasGadget(0,0,0,640,480)
  mx=320
  my=240
  If StartDrawing(CanvasOutput(0))
    For y=-my To my
      For x=-mx To mx
        n=0
        z\x=x*0.005
        z\y=y*0.005
        d=z
While (z\x*z\x+z\y *z\y < max) And (d\x*d\x+ d\y*d\y > min) And (n < iter)
t = z;
;{z^3 - 1}
p.f =(t\x*t\x+t\y*t\y)*(t\x*t\x+ t\y*t\y);Sqr(Sqr(t.x)+Sqr(t.y));
z\x = 2/3*t\x + (t\x*t\x-t\y*t\y)/(3*p);
z\y = 2/3*t\y*(1-t\x/p);{}
d\x = Abs(t\x - z\x);
d\y = Abs(t\y - z\y);
n=n+1
Wend
;Box(mx + x,my + y,1,1,(16 - (n%16))*(1+256+65536))
Box(mx + x,my + y,1,1,egacol(16-n%16))
    Next x
    Next y
    StopDrawing()
  EndIf
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow
EndIf



Комментарии