@acer
I added two parametrs and I added display to show contours but it doesn't work do you know what is wrong with this modification of your code?
restart;
(m,n) := 200, 200:
(aa,bb,cc,dd) := -3, 3, -3, 3:
M := Array(1..m, 1..n,
(i,j) -> evalhf( I*(bb-(i-1)*(bb-aa)/(m-1))
+ (cc+(j-1)*(dd-cc)/(n-1)) ),
datatype=complex[8], order=Fortran_order):
f := (z) -> ((z^2 + a)/(z^3 + b))^3;
P:=proc(MM,param1,param2) local Z,A,temp,img;
uses ImageTools, plots;
Z := map[evalhf, inplace](subs(a=param1,b=param2,eval(f)), copy(M)):
A := Array(1..m, 1..n, 1..3, 1.0, datatype=float[8], order=Fortran_order):
temp := Array(map[evalhf](z->argument(z), Z), datatype=float[8]):
A[..,..,1] := map[evalhf,inplace](`*`, FitIntensity(temp,inplace), 360):
img := HSVtoRGB(A):
display(plot([[0,0]],x=cc..dd,y=aa..bb,axes=boxed,background=img,
gridlines=false,size=[400,400]),contourplot(subs(a = param1,b=param2, z = x + y*I, eval(f(z))), x = -3 .. 3, y = -3 .. 3));
end proc:
P(M,0.5,2);