Нашел разные исходники построения картинки и изменил расцветку:
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
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


Комментарии
Отправить комментарий