with(plots):u := x^3-3*x*y^2-4*x*y-x+y+3; v := 3*x^2*y-y^3+2*x^2-2*y^2-x-y;window := -2..2: display( implicitplot(u=0, x=window, y=window, thickness=2, numpoints=2000, color=blue), implicitplot(v=0, x=window, y=window, thickness=2, numpoints=2000, color=red));window := -10..10: display( implicitplot(u=0, x=window, y=window, thickness=2, numpoints=2000, color=blue), implicitplot(v=0, x=window, y=window, thickness=2, numpoints=2000, color=red));window := -40..40: display( implicitplot(u=0, x=window, y=window, thickness=2, numpoints=2000, color=blue), implicitplot(v=0, x=window, y=window, thickness=2, numpoints=2000, color=red));restart:interface(showassumed=0): with(plots): RotatedBasketball := proc(theta,f,N,NP) local x,y,RE,IM,RealPlot,ImagPlot: assume(x,real): assume(y,real): RE := Re(expand((cos(theta)+I*sin(theta))*f(x+I*y))): IM := Im(expand((cos(theta)+I*sin(theta))*f(x+I*y))): RealPlot := implicitplot(RE=0, x=-N..N, y=-N..N, color=blue, axes=none, numpoints=NP, thickness=2, scaling=constrained): ImagPlot := implicitplot(IM=0, x=-N..N, y=-N..N, color=red, axes=none, numpoints=NP, thickness=2, scaling=constrained): display(RealPlot,ImagPlot): end:f := z -> z^5+I*z^2+(1-2*I)*z-3;RotatedBasketball(0,f,3,2000);f := z -> z^5+z+1; RotatedBasketball(0,f,3,2000);f := z -> z^5+6*z^3+3*z^2+5*z-2; RotatedBasketball(0,f,3,2000);f := z -> z^5+z^4+I*z^3-z^2-(I+1)*z; RotatedBasketball(0,f,3,2000);RB := theta -> RotatedBasketball(theta,f,2,10000):animate( RB, [theta], theta=0..Pi, frames=100);