; Formulas from Andre Vandergoten ; May 2002-05-25 ; avandergoten@skynet.be AAA-5-grt{ init: z = #pixel loop: if @soort == 0 z = z^@power/@een(#pixel) elseif @soort == 1 z = z^@power^@een(#pixel) elseif @soort == 2 z = z^@power-@een(#pixel) elseif @soort == 3 z = z^@power+@een(#pixel) elseif @soort == 4 z = z^@power*@een(#pixel) endif bailout: |z|>@bailout default: title = "AAA-5-grt" method = multipass param soort caption = "soort" default = 0 enum = "0" "1" "2" "3" "4" endparam param power caption = "power" default = (1.0,0.0) endparam param bailout caption = "bailout" default = 1.0 endparam } AAA-5-kl{ init: z = #pixel loop: if @soort == 0 z = z^@power/@een(#pixel) elseif @soort == 1 z = z^@power^@een(#pixel) elseif @soort == 2 z = z^@power-@een(#pixel) elseif @soort == 3 z = z^@power+@een(#pixel) elseif @soort == 4 z = z^@power*@een(#pixel) endif bailout: |z|<4 default: title = "AAA-5-kl" method = multipass param soort caption = "soort" default = 0 enum = "0" "1" "2" "3" "4" endparam param power caption = "power" default = (1.0,0.0) endparam } AAB1-grt-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)*(#pixel+@getal2) loop: if @zet == 0 z = (@ex1/c - z^c) / (@ex2/z * c^z)*((@ex3/z)*(@ex4/c)) elseif @zet == 1 z = (@ex1/c - z^c) * (@ex2/z * c^z)*((@ex3/z)/(@ex4/c)) elseif @zet == 2 z = (@ex1/c - z^c) - (@ex2/z * c^z)*((@ex3/z)+(@ex4/c)) elseif @zet == 3 z = (@ex1/c - z^c) + (@ex2/z * c^z)*((@ex3/z)-(@ex4/c)) endif bailout: |z|<@bailout default: title = "AAB1-grt-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 4.0 endparam } AAB1-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)*(#pixel+@getal2) loop: if @zet == 0 z = (@ex1/c - z^c) / (@ex2/z * c^z)*((@ex3/z)*(@ex4/c)) elseif @zet == 1 z = (@ex1/c - z^c) * (@ex2/z * c^z)*((@ex3/z)/(@ex4/c)) elseif @zet == 2 z = (@ex1/c - z^c) - (@ex2/z * c^z)*((@ex3/z)+(@ex4/c)) elseif @zet == 3 z = (@ex1/c - z^c) + (@ex2/z * c^z)*((@ex3/z)-(@ex4/c)) endif bailout: |z|>@bailout default: title = "AAB1-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 1.0 endparam } AAB-grt-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)*(#pixel+@getal2) loop: if @zet == 0 z = (@ex1^c - z^c) / (@ex2^z * c^z)*((@ex3^z)*(@ex4/c)) elseif @zet == 1 z = (@ex1^c - z^c) * (@ex2^z * c^z)*((@ex3^z)/(@ex4/c)) elseif @zet == 2 z = (@ex1^c - z^c) - (@ex2^z * c^z)*((@ex3^z)+(@ex4/c)) elseif @zet == 3 z = (@ex1^c - z^c) + (@ex2^z * c^z)*((@ex3^z)-(@ex4/c)) endif bailout: |z|<@bailout default: title = "AAB-grt-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 4.0 endparam } AAB-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)*(#pixel+@getal2) loop: if @zet == 0 z = (@ex1^c - z^c) / (@ex2^z * c^z)*((@ex3^z)*(@ex4/c)) elseif @zet == 1 z = (@ex1^c - z^c) * (@ex2^z * c^z)*((@ex3^z)/(@ex4/c)) elseif @zet == 2 z = (@ex1^c - z^c) - (@ex2^z * c^z)*((@ex3^z)+(@ex4/c)) elseif @zet == 3 z = (@ex1^c - z^c) + (@ex2^z * c^z)*((@ex3^z)-(@ex4/c)) endif bailout: |z|>@bailout default: title = "AAB-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 1.0 endparam } AAC1-grt-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)/(#pixel+@getal2) loop: if @zet == 0 z = (@ex1/c - z^c) / (@ex2/z * c^z)*((@ex3/z)*(@ex4/c)) elseif @zet == 1 z = (@ex1/c - z^c) * (@ex2/z * c^z)*((@ex3/z)/(@ex4/c)) elseif @zet == 2 z = (@ex1/c - z^c) - (@ex2/z * c^z)*((@ex3/z)+(@ex4/c)) elseif @zet == 3 z = (@ex1/c - z^c) + (@ex2/z * c^z)*((@ex3/z)-(@ex4/c)) endif bailout: |z|<@bailout default: title = "AAC1-grt-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 4.0 endparam } AAC1-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)/(#pixel+@getal2) loop: if @zet == 0 z = (@ex1/c - z^c) / (@ex2/z * c^z)*((@ex3/z)*(@ex4/c)) elseif @zet == 1 z = (@ex1/c - z^c) * (@ex2/z * c^z)*((@ex3/z)/(@ex4/c)) elseif @zet == 2 z = (@ex1/c - z^c) - (@ex2/z * c^z)*((@ex3/z)+(@ex4/c)) elseif @zet == 3 z = (@ex1/c - z^c) + (@ex2/z * c^z)*((@ex3/z)-(@ex4/c)) endif bailout: |z|>@bailout default: title = "AAC1-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 1.0 endparam } AAC-grt-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)/(#pixel+@getal2) loop: if @zet == 0 z = (@ex1^c - z^c) / (@ex2^z * c^z)*((@ex3^z)*(@ex4/c)) elseif @zet == 1 z = (@ex1^c - z^c) * (@ex2^z * c^z)*((@ex3^z)/(@ex4/c)) elseif @zet == 2 z = (@ex1^c - z^c) - (@ex2^z * c^z)*((@ex3^z)+(@ex4/c)) elseif @zet == 3 z = (@ex1^c - z^c) + (@ex2^z * c^z)*((@ex3^z)-(@ex4/c)) endif bailout: |z|<@bailout default: title = "AAC-grt-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 4.0 endparam } AAC-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)/(#pixel+@getal2) loop: if @zet == 0 z = (@ex1^c - z^c) / (@ex2^z * c^z)*((@ex3^z)*(@ex4/c)) elseif @zet == 1 z = (@ex1^c - z^c) * (@ex2^z * c^z)*((@ex3^z)/(@ex4/c)) elseif @zet == 2 z = (@ex1^c - z^c) - (@ex2^z * c^z)*((@ex3^z)+(@ex4/c)) elseif @zet == 3 z = (@ex1^c - z^c) + (@ex2^z * c^z)*((@ex3^z)-(@ex4/c)) endif bailout: |z|>@bailout default: title = "AAC-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 1.0 endparam } AAD1-grt-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)+(#pixel+@getal2) loop: if @zet == 0 z = (@ex1/c - z^c) / (@ex2/z * c^z)*((@ex3/z)*(@ex4/c)) elseif @zet == 1 z = (@ex1/c - z^c) * (@ex2/z * c^z)*((@ex3/z)/(@ex4/c)) elseif @zet == 2 z = (@ex1/c - z^c) - (@ex2/z * c^z)*((@ex3/z)+(@ex4/c)) elseif @zet == 3 z = (@ex1/c - z^c) + (@ex2/z * c^z)*((@ex3/z)-(@ex4/c)) endif bailout: |z|<@bailout default: title = "AAD1-grt-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 4.0 endparam } AAD1-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)+(#pixel+@getal2) loop: if @zet == 0 z = (@ex1/c - z^c) / (@ex2/z * c^z)*((@ex3/z)*(@ex4/c)) elseif @zet == 1 z = (@ex1/c - z^c) * (@ex2/z * c^z)*((@ex3/z)/(@ex4/c)) elseif @zet == 2 z = (@ex1/c - z^c) - (@ex2/z * c^z)*((@ex3/z)+(@ex4/c)) elseif @zet == 3 z = (@ex1/c - z^c) + (@ex2/z * c^z)*((@ex3/z)-(@ex4/c)) endif bailout: |z|>@bailout default: title = "AAD1-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 1.0 endparam } AAD-grt-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)+(#pixel+@getal2) loop: if @zet == 0 z = (@ex1^c - z^c) / (@ex2^z * c^z)*((@ex3^z)*(@ex4/c)) elseif @zet == 1 z = (@ex1^c - z^c) * (@ex2^z * c^z)*((@ex3^z)/(@ex4/c)) elseif @zet == 2 z = (@ex1^c - z^c) - (@ex2^z * c^z)*((@ex3^z)+(@ex4/c)) elseif @zet == 3 z = (@ex1^c - z^c) + (@ex2^z * c^z)*((@ex3^z)-(@ex4/c)) endif bailout: |z|<@bailout default: title = "AAD-grt-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 4.0 endparam } AAD-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)+(#pixel+@getal2) loop: if @zet == 0 z = (@ex1^c - z^c) / (@ex2^z * c^z)*((@ex3^z)*(@ex4/c)) elseif @zet == 1 z = (@ex1^c - z^c) * (@ex2^z * c^z)*((@ex3^z)/(@ex4/c)) elseif @zet == 2 z = (@ex1^c - z^c) - (@ex2^z * c^z)*((@ex3^z)+(@ex4/c)) elseif @zet == 3 z = (@ex1^c - z^c) + (@ex2^z * c^z)*((@ex3^z)-(@ex4/c)) endif bailout: |z|>@bailout default: title = "AAD-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 1.0 endparam } AAE1-grt-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)-(#pixel+@getal2) loop: if @zet == 0 z = (@ex1/c - z^c) / (@ex2/z * c^z)*((@ex3/z)*(@ex4/c)) elseif @zet == 1 z = (@ex1/c - z^c) * (@ex2/z * c^z)*((@ex3/z)/(@ex4/c)) elseif @zet == 2 z = (@ex1/c - z^c) - (@ex2/z * c^z)*((@ex3/z)+(@ex4/c)) elseif @zet == 3 z = (@ex1/c - z^c) + (@ex2/z * c^z)*((@ex3/z)-(@ex4/c)) endif bailout: |z|<@bailout default: title = "AAE1-grt-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 4.0 endparam } AAE1-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)-(#pixel+@getal2) loop: if @zet == 0 z = (@ex1/c - z^c) / (@ex2/z * c^z)*((@ex3/z)*(@ex4/c)) elseif @zet == 1 z = (@ex1/c - z^c) * (@ex2/z * c^z)*((@ex3/z)/(@ex4/c)) elseif @zet == 2 z = (@ex1/c - z^c) - (@ex2/z * c^z)*((@ex3/z)+(@ex4/c)) elseif @zet == 3 z = (@ex1/c - z^c) + (@ex2/z * c^z)*((@ex3/z)-(@ex4/c)) endif bailout: |z|>@bailout default: title = "AAE1-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 1.0 endparam } AAE-grt-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)-(#pixel+@getal2) loop: if @zet == 0 z = (@ex1^c - z^c) / (@ex2^z * c^z)*((@ex3^z)*(@ex4/c)) elseif @zet == 1 z = (@ex1^c - z^c) * (@ex2^z * c^z)*((@ex3^z)/(@ex4/c)) elseif @zet == 2 z = (@ex1^c - z^c) - (@ex2^z * c^z)*((@ex3^z)+(@ex4/c)) elseif @zet == 3 z = (@ex1^c - z^c) + (@ex2^z * c^z)*((@ex3^z)-(@ex4/c)) endif bailout: |z|<@bailout default: title = "AAE-grt-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 4.0 endparam } AAE-volledig{ init: z = #pixel c = @iks(#pixel-@getal1)-(#pixel+@getal2) loop: if @zet == 0 z = (@ex1^c - z^c) / (@ex2^z * c^z)*((@ex3^z)*(@ex4/c)) elseif @zet == 1 z = (@ex1^c - z^c) * (@ex2^z * c^z)*((@ex3^z)/(@ex4/c)) elseif @zet == 2 z = (@ex1^c - z^c) - (@ex2^z * c^z)*((@ex3^z)+(@ex4/c)) elseif @zet == 3 z = (@ex1^c - z^c) + (@ex2^z * c^z)*((@ex3^z)-(@ex4/c)) endif bailout: |z|>@bailout default: title = "AAE-volledig" method = multipass param zet caption = "zet" default = 0 enum = "0" "1" "2" "3" endparam param getal1 caption = "getal1" default = 1.0 endparam param getal2 caption = "getal2" default = 1.0 endparam param ex1 caption = "ex1" default = 1.0 endparam param ex2 caption = "ex2" default = 1.0 endparam param ex3 caption = "ex3" default = 1.0 endparam param ex4 caption = "ex4" default = 1.0 endparam param bailout caption = "bailout value" default = 1.0 endparam } =03 { init: z=c=pixel real=fn1(z-1/@p1) imag=fn2(real^(z)/@p2) loop: z=fn4(real-z)+fn3(imag+(z-1))+c bailout: |z|<= @bailout default: title = "=03" param bailout caption = "bailout" default = 1.0 endparam param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam } =05 {; Revised 4/27/96 to eliminate superfluous "+c" ; Original version of this formula may be discarded init: z=pixel real=fn1(tan(z))+pixel imag=fn2(cotan(z))+(pixel^pixel) l=(real^imag)^22 loop: z=fn1(real)*fn2(imag)*fn3(l) bailout: |z|<= @bailout default: title = "=05" param bailout caption = "bailout" default = 4.0 endparam } 0008 { init: z = pixel loop: z = pixel^z+fn1(z)-pixel/z bailout: |z|<= @bailout default: title = "0008" param bailout caption = " bailout " default = 4.0 endparam ; source KANAK.FRM } 000b { init: z = pixel^@p1 loop: z = fn1(z^@p2)-pixel^@p3 bailout: |z| <= @bailout default: title = "000b" param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3" default = (1.0,0) endparam ; source KANAK.FRM } 0014 { init: z = pixel loop: z = fn1(pixel*z)+@p2^z bailout: |z| <= @bailout default: title = "0014" param bailout caption = "bailout" default = 4.0 endparam param p2 caption = "p2" default = (1.0,0) endparam ; source KANAK.FRM } 0015 { ; greed-disaster init: z = pixel loop: z = @p1*fn1(pixel*z)+@p2^z bailout: |z| <= @bailout default: title = "0015" param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam ; source KANAK.FRM } 0016 { ; doubegg init: z = pixel loop: z = fn1(pixel/z)+@p1^z bailout: |z| <= @bailout default: title = " 0016 " param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (1.0,0) endparam ; source KANAK.FRM } 0017 { ; ermello init: z = pixel loop: z = fn1(pixel*z)+@p1^z bailout: |z| <= @bailout default: title = "0017" param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (1.0,0) endparam ; source KANAK.FRM } 0018 { init: z = pixel loop: z = fn1(pixel*z)+z^@p1 bailout: |z| <= @bailout default: title = "0018" param bailout caption = " bailout " default = 4.0 endparam param p1 caption = " p1 " default = (1.0,0) endparam ; source KANAK.FRM } 003 (XYAXIS) { init: z = pixel loop: z = fn2(z) + fn1(z) + @p1 bailout: z <= @bailout default: title = "003" param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (1.0,0) endparam } 040797-001 { ;Linda Allison init: z = c = pixel z2 = (1/z ^ @p1) loop: z = fn1(c * (1 - z2 ^ z2)/(1 + z2 ^ z2)) bailout: |z| <= @p2 default: title = " 040797-001 " param p1 caption = " p1 " default = (1.0,0) endparam param p2 caption = " p2 " default = 4.0 endparam } 051597-002 {; Linda Allison May 15, 1997 init: z=0 c=log(sqr(sqr(pixel))*pixel)*0.2 loop: z2=fn1(z)+c z=c*(1-z2*z2)/(1+z2*z2) bailout: |z|<=@p1 default: title = " 051597-002 " param p1 caption = " p1 " default = 4.0 endparam } 051597-002a {; Linda Allison May 15, 1997 ; stars modified by David Shanholtzer init: z=0 c=log(sqr(sqr(pixel))*pixel)*0.4 loop: z2=fn1(z)+c z=c*(1-z2*z2)/(1+z2*z2) bailout: |z|<=@p1 default: title = " 051597-002a " param p1 caption = " p1 " default = 4.0 endparam } 051597-002-m1 {; Linda Allison May 15, 1997 ; modified by Sylvie Gallet ; 1st parameter: real(p1) = bailout ; 2nd parameter: imag(p1) = number of sides init: z = 0 c = 0.2 * log(pixel^imag(@p1)) loop: z2 = fn1(z) + c , sqz2 = sqr(z2) z = c * (1-sqz2)/(1+sqz2) bailout: |z| <= @p1 default: title = " 051597-002-m1 " param p1 caption = "p1" default = (1.0,1.0) endparam } 051597-002-m1-m2 {; Linda Allison May 15,1997 ; modified by Sylvie Gallet ; modified again by Linda Allison ; 1st parameter: real(p1) = bailout ; 2nd parameter: imag(p1) = number of sides init: z = 0 c = 0.2 * log(pixel^imag(@p1)) loop: z2 = fn1(z) + c , sqz2 = fn2(z2) z = c * (1-sqz2)/(1+sqz2) bailout: |z| <= @bailout default: title = "051597-002-m1-m2" param p1 caption = "p1" default = (0.0,11.0) endparam param bailout caption = "bailout" default = 0.1 endparam } 100296-005 { ;Linda Allison=20 init: z = pixel loop: z = (fn1(1/z ^ @p3))/@p1 + (fn2(1/z ^ @p3))/@p2 bailout: |z| <= .75 * @p2 default: title = "100296-005" param p1 caption = "p1" default = 1.1 endparam param p2 caption = "p2" default = 1.1 endparam param p3 caption = "p3" default = 1.1 endparam } 39man (XAXIS) { ; Tentative Copyright Ben Leighton ;(this is likely to have been done at some time somewhere) init: z=a=pixel loop: a=pixel+(flip(a)-z) z=fn1(z*(z-a) +pixel) ;add fn1 bailout: |z| <= @bailout ;add param bailout default: title = "39man" param bailout caption = "bailout" default = 4.0 endparam } a0 {; (c) by Miguel Fliguer init: z=c=pixel loop: z=fn1(z/fn2(z/fn3(z/fn4(z))))+c bailout: |z|<= @bailout default: title = "a0" param bailout caption = " bailout " default = 4.0 endparam } a1 {; (c) by Miguel Fliguer init: z=c=pixel loop: z=fn1(@p1*z/fn2(@p2+z/fn3(@p3-z/fn1(z))))+c bailout: |z|< @bailout default: title = "a1" param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3" default = (1.0,0) endparam } _AA1 { ; generalized _AA0 ; Q1 = P1 IF P1 <> 0 ELSE Q1 = PIXEL, Q1R = REAL(Q1), Q1I = IMAG(Q1) ; Q2 = P2 IF P2 <> 0 ELSE Q2 = PIXEL, Q2R = REAL(Q2), Q2I = IMAG(Q2) ; R1R = 8^ABS(Q1R) = BAILOUT, S1R = 1 IF Q1R >0 ELSE S1R = -1 ; Z0 = PIXEL : ; Z = Q1I*FN1(FN2(Q2R*Z))+FN3(FN4(Q2I*Z)) ; Q2R = Q2R*S1R q1r<0 -> q2r alternates sign ; |Z| < R1R ;Formula from frac_ml ;I kept the form as faithful as possible init: IF (REAL(@P1) || IMAG(@P1)) Q1 = @P1 ELSE Q1 = PIXEL ENDIF Q1R = REAL(Q1), R1R = 8^(ABS(Q1R)) IF (Q1R >= 0) S1R = 1 ELSE S1R = -1 ENDIF Q1I = IMAG(Q1) IF (REAL(@P2) || IMAG(@P2)) Q2 = @P2 ELSE Q2 = PIXEL ENDIF Q2R = REAL(Q2), Q2I = IMAG(Q2) Z = PIXEL loop: Z = Q1I*FN1(FN2(Q2R*Z))+FN3(FN4(Q2I*Z)) ZM = |Z| Q2R = Q2R*S1R ZM <= R1R } aaa-deals { init: z = pixel, a=real(z), b=imag(z), i=((0-1)^0.5) loop: x = real(z) y = imag(z) u = x*x + y*y + a v = (0-2)*x*y + b z = u + v*i bailout: |z|< @bailout default: title = " aaa-deals " param bailout caption = "bailout" default = 4.0 endparam } aa-mand-re(XAXIS) { init: z = c = pixel loop: z = sqr(z)+c bailout: real(z)<@bailout default: title = "aa-mand-re" param bailout caption = "bailout" default = 4.0 endparam } aa-z-to-c(XAXIS) { init: z = pixel, c = z loop: z = fn2(c*fn1(z)) bailout: |z| <= @bailout default: title = "aa-z-to-c" param bailout caption = "bailout" default = 4.0 endparam } _AB1 { ; generalized _AB0 ; Q1 = P1 IF P1 <> 0 ELSE Q1 = PIXEL, Q1R = REAL(Q1), Q1I = IMAG(Q1) ; Q2 = P2 IF P2 <> 0 ELSE Q2 = PIXEL, Q2R = REAL(Q2), Q2I = IMAG(Q2) ; R1R = 8^ABS(Q1R) = BAILOUT, S1R = 1 IF Q1R >0 ELSE S1R = -1 ; Z0 = PIXEL : ; Z = Q1I*FN1(FN2(Q2R*Z))*FN3(FN4(Q2I*Z)) ; Q2R = Q2R*S1R q1r<0 -> q2r alternates sign ; |Z| < R1R ;Formula from frac_ml ;I kept the form as faithful as possible IF (REAL(@P1) || IMAG(@P1)) Q1 = @P1 ELSE Q1 = PIXEL ENDIF Q1R = REAL(Q1), R1R = 8^(ABS(Q1R)) IF (Q1R >= 0) S1R = 1 ELSE S1R = -1 ENDIF Q1I = IMAG(Q1) IF (REAL(@P2) || IMAG(@P2)) Q2 = @P2 ELSE Q2 = PIXEL ENDIF Q2R = REAL(Q2), Q2I = IMAG(Q2) Z = PIXEL : Z = Q1I*FN1(FN2(Q2R*Z))*FN3(FN4(Q2I*Z)) ZM = |Z| Q2R = Q2R*S1R ZM <= R1R } AbsArcTangentia2 (ORIGIN) {; Tom Schumm ; Attempt to change the shape of the escape boundry init: z = Pixel, z = Sqr(z); Just like julia loop: z = z + @p1 z = Sqr(z) bailout: imag(z) <= fn1(abs(1/tan(real(z))+4)); Different escape boundry default: title = "AbsArcTangentia2" param p1 caption = "p1" default = (1.0,0) endparam ;SOURCE: phong2.frm } AbsArcTangentia3 (ORIGIN) {; Tom Schumm ; Attempt to change the shape of the escape boundry init: z = Pixel, z = fn1(Sqr(z)); Just like julia ;andre add fn1 loop: z = z + @p1 z = Sqr(z) bailout: imag(z) <= fn2(abs(1/tan(real(z)))+4); Different escape boundry default: title = "AbsArcTangentia3" param p1 caption = "p1" default = (1.0,0) endparam ;SOURCE: phong2.frm } AbsArcTangentia1 (ORIGIN) {; Tom Schumm ; Attempt to change the shape of the escape boundry init: z = Pixel, z = Sqr(z) loop: ; Just like julia z = z + @p1 z = Sqr(z) bailout: imag(z) <= abs(1/tan(real(z))); Different escape boundry default: title = "AbsArcTangential" param p1 caption = "p1" default = (1.0,0) endparam ;SOURCE: phong2.frm } _AC1 { ; generalized _AC0 ; Q1 = P1 IF P1 <> 0 ELSE Q1 = PIXEL, Q1R = REAL(Q1), Q1I = IMAG(Q1) ; Q2 = P2 IF P2 <> 0 ELSE Q2 = PIXEL, Q2R = REAL(Q2), Q2I = IMAG(Q2) ; R1R = 8^ABS(Q1R) = BAILOUT, S1R = 1 IF Q1R >0 ELSE S1R = -1 ; Z0 = PIXEL : ; Z = Q1I*FN1(FN2(Q2R*Z))^FN3(FN4(Q2I*Z)) ; Q2R = Q2R*S1R q1r<0 -> q2r alternates sign ; |Z| < R1R ;Formula from frac_ml ;I kept the form as faithful as possible IF (REAL(P1) || IMAG(P1)) Q1 = P1 ELSE Q1 = PIXEL ENDIF Q1R = REAL(Q1), R1R = 8^(ABS(Q1R)) IF (Q1R >= 0) S1R = 1 ELSE S1R = -1 ENDIF Q1I = IMAG(Q1) IF (REAL(P2) || IMAG(P2)) Q2 = P2 ELSE Q2 = PIXEL ENDIF Q2R = REAL(Q2), Q2I = IMAG(Q2) Z = PIXEL : Z = Q1I*FN1(FN2(Q2R*Z))^FN3(FN4(Q2I*Z)) ZM = |Z| Q2R = Q2R*S1R ZM <= R1R } acc_man_mod {; Modified Sylvie Gallet formula ; Modified acceleration_man.frm (generalized by Les St Clair) ; use fn1=cabs, fn2=abs for default behaviour ; set p1=0 and p2=0 for default behaviour init: z2 = r = 0 loop: l = r, z = z2 z1 = z*z + pixel +@p1 vel1 = z1 - z z2 = z1*z1 + pixel +@p2 vel2 = z2 - z1 acc = vel2 - vel1 r = fn1(acc) bailout: r < 4 && fn2(l - r) >= 0.001 default: title = "acc_man_mod" param p1 caption = "p1" default = (0.0,0) endparam param p2 caption = "p2" default = (0.0,0) endparam func fn1 caption = "fn1" default = cabs() endfunc func fn2 caption = "fn2" default = abs() endfunc } agravipop { ;5-29-98 kathy roth ;my mistake! ;imag p3 must be positive init: x=real(pixel), y=imag(pixel), h=imag(@p3) loop: newx = x-h*sin((y) + tan(3*y)) newy = y-h*sin((x) + tan(3*x)) x=newx, y=newy z=x + flip(y) newx = x-h*sin((y) + tan(3*y)) newy = y-h*sin((x) + tan(3*x)) x=newx, y=newy z=x + flip(y) w = fn1(z) z = fn3(@p1/fn2(w*w)) + @p2 bailout: |z| < real(@p3) default: title = "agravipop" param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3" default = (1.0,0) endparam } Alpha04-22{;V.1.1 - earlier versions may be discarded ; = Alpha[4] = (exp(-z)-4Alpha[3])/z init: t=@p1,z=pixel ;bailout=4 loop: x=real(z),y=imag(z) x2=x*x,y2=y*y Tx=fn1(((((x-4)*x+12)*x-24)*x+24)/(exp(x)*x2*x2*x)) Ty=fn2(((((y-4)*y+12)*y-24)*y+24)/(exp(y)*y2*y2*y)) x=x-t*Ty,y=y+t*Tx z=x+flip(y) bailout: |z|<= @bailout default: title = "Alpha04-22" param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (1.0,0) endparam } andy23 { init: c = pixel^(-6), z = @p1 * (c + 1) loop: z = z * (fn1(@p1 + c) + fn2(@p2 + c)) bailout: |z| <= @bailout default: title = "andy23" param bailout caption = "bailout" default = 64.0 endparam param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam } au0 { init: z=pixel,y=fn1(z-1)^fn1(z),x=(z-1)*fn1(z+1),t=(z/2)*fn1(z-1) loop: z=fn1(fn2(t^y)/fn3(x^t))^fn4(t^z) bailout: |z|< @bailout default: title = "au0" param bailout caption = "bailout" default = 4.0 endparam } avw-2 {; Linda Allison Variation by wizzle 1998 init: z=0 c=log(sqr(conj(pixel))*pixel)*0.2 loop: z2=fn1(z)+c z=c*(1-z2*z2)/(1+z2*z2) bailout: |z|<=@bailout default: title = "avw-2" param bailout caption = "bailout" default = 4.0 endparam } -b009 { init: z=fn1(fn2(1/pixel)),c=fn2(fn1(pixel)),c1=z/c^c/z loop: z=z/c1 z=fn3(z-(z^c1))/(c*c-pixel) bailout: |z|<= @bailout default: title = "-b009" param bailout caption = "bailout" default = 4.0 endparam } bail2{ ;5-3-98 kathy roth ;variation of gravijul by Mark Christenson init: z = pixel, a=real(@p3), b=imag(@p3) loop: w = fn1(z) z = fn3(@p1/fn2(w*w)) + @p2 bailout: real(z)^ real(z)/ a + imag(z) * imag(z)/b < 1 default: title = "bail2" param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3" default = (1.0,0) endparam } bail6{ ;5-3-98 kathy roth ;variation of gravijul by Mark Christenson init: z = pixel, a=real(@p3), b=imag(@p3) loop: w = fn1(z) z = fn3(@p1/fn2(w*w)) + @p2 bailout: fn4(real(z))/ a + fn4(imag(z))/b < @bailout default: title = "bail6" param bailout caption = "bailout" default = 1.0 endparam param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3" default = (1.0,1.0) endparam } bail7{ ;5-3-98 kathy roth ;variation of gravijul by Mark Christenson init: z = pixel, a=real(@p3), b=imag(@p3) loop: z = fn1(@p1/fn2((1/z)*(1/z))) + @p2 bailout: fn3(real(z))/ a + fn3(imag(z))/b < @bailout default: title = "bail7" param bailout caption = "bailout" default = 1.0 endparam param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3" default = (1.0,1.0) endparam } BESSEL-2 { init: c = z = pixel loop: z = c*(cos(z) / z + pixel) bailout: |z| <= @bailout default: title = "BESSEL-2" param bailout caption = "bailout" default = 100.0 endparam } Beta03-06 {; V.1.1 - earlier versions may be discarded ; Copyright (c)1998,1999 Morgan L. Owens ; = Beta[3] = (-exp(-z)-3Beta[2])/z init: r=@p1, a=real(@p2)/10000, z=pixel loop: ez=exp(z) z2=z*z e1=ez*ez e2=6*e1-6 e3=ez*z2*z2 f=(-(((z+3)*z+6)*z+e2)/e3) fd=((((z+4)*z+6)*z-e2)*z+24*e1+24)/(e3*z) fdd=(((((z+13)*z+38)*z-18*e1+48)*z+36*e1+60)*z+120*e1+120)/(e3*z2) oz=z z=fn1(f/(fd-fdd*f/(fd+fd)))*r bailout: |z-oz| > a*(log(@bailout)) default: title = "Beta03-06" param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param bailout caption = "bailout" default = 1.1 endparam } Beta05-23{;V.1.1 - earlier versions may be discarded ; = Beta[5] = (-exp(-z)-5Beta[4])/z init: t=@p1,z=fn3(pixel) loop: x=real(z),y=imag(z) ex=exp(x),ey=exp(y) x2=x*x,y2=y*y Tx=fn1(-(((((x+5)*x+20)*x+60)*x+120)*x+(120*ex*ex-120))/(x2*x2*x2*ex)) Ty=fn2(-(((((y+5)*y+20)*y+60)*y+120)*y+(120*ey*ey-120))/(y2*y2*y2*ey)) x=x-t*Ty,y=y+t*Tx z=x+flip(y) bailout: |z|<= @bailout default: title = "Beta05-23" param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (0,0) endparam } Beta07-09{;V.1.1 - earlier versions may be discarded ; = Beta[7] = (-exp(-z)-7Beta[6])/z init: t=@p1,z=pixel loop: x=real(z),y=imag(z) ex=exp(x),ey=exp(y) x2=x*x,y2=y*y,x4=x2*x2,y4=y2*y2 Tx=fn1(-(((((((x+7)*x+42)*x+210)*x+840)*x+2520)*x+5040)*x+(5040*ex*ex-5040))/(x4*x4*ex)) Ty=fn1(-(((((((y+7)*y+42)*y+210)*y+840)*y+2520)*y+5040)*y+(5040*ey*ey-5040))/(y4*y4*ey)) x=x-t*Ty,y=y+t*Tx z=x+flip(y) bailout: |z|<= @bailout default: title = "Bata07-09" param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (0,0) endparam } bills_diff { ; Mar-4-98 init: c = x = pixel, y = pixel + @p1 loop: xtemp = x^@p2 +c x = fn1(xtemp) ytemp = y^@p3 +c y = fn1(ytemp) d = |x-y| z = d^2 bailout: |z| < @bailout default: title = "bills_diff" param bailout caption = "bailout" default = 2.0 endparam param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3" default = (1.0,0) endparam } bills_diff_delt1 { ; Apr-13-98 ; p1 = offset for y var ; real p2 = base real exponent ; imag p2 = base imag exponent ; real p3 = exponent real delta ; imag p3 = exponent imag delta ; init: c = x = pixel, y = #pixel + @p1 splus = real(@p2) + real(@p3) + flip(imag(@p2) + imag(@p3)) sminus = real(@p2) - real(@p3) + flip(imag(@p2) - imag(@p3)) loop: xtemp = x^splus +c x = fn1(xtemp) ytemp = y^sminus +c y = fn1(ytemp) d = |x-y| z = d^2 bailout: |z| < @bailout default: title = "bills_diff_delt1" param bailout caption = "bailout" default = 2.0 endparam param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3" default = (1.0,0) endparam } bills_wonder { init: z = 1/pixel, a = real(@p1), b = imag(@p1) loop: ztemp = z^a - z^b z = (fn1(ztemp)^@p2)/z bailout: |z| < real(@p3bailout) default: title = "bills_wonder" param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3bailout caption = "p3bailout" default = 1.0 endparam } bills_wonder2 { init: z = 1/pixel, a = real(@p1), b = imag(@p1) loop: ztemp = z^a - z^b z = (fn1(ztemp)^@p2)/fn2(z) bailout: |z| < real(@p3bailout) default: title = "bills_wonder2" param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3bailout caption = "p3bailout" default = 1.0 endparam } bills_xy-trade {; ; revised Bill Decker, 04/99 init: a = real(@p1), b = imag(@p1), z = pixel d = real(@p2), g = imag(@p2) bail = real(@p3) loop: x = real(z), x1 = z^a y = imag(z), y1 = z^b ztemp = fn1(x) + d*fn2(y1) + fn1(y) + g*fn2(x1) z = fn3(ztemp) bailout: |z| > bail default: title = "bills_xy-trade" param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3bail" default = 1.0 endparam } bills_xy-trade4 {; ; revised Bill Decker, 04/99 init: a = real(@p1), b = imag(@p1) c = real(@p2), d = imag(@p2) g = real(@p3), f = imag(@p3) z = pixel+1/pixel zold = pixel^g loop: x = (real(z)-real(zold))^a y = (imag(z)-imag(zold))^b zold = z z = (y +flip(x)) z = (fn1(z))^c - (fn2(zold))^d bailout: |z| < f default: title = "bills_xy-trade4" param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3bail(f)" default = 1.0 endparam } bills_xy-trade6 {; ; revised Bill Decker, 04/99 init: a = real(@p1), b = imag(@p1) c = real(@p2), d = imag(@p2) g = real(@p3), f = imag(@p3) z = pixel+c/pixel zold = pixel^g loop: x = (real(z)-real(zold))^a y = (imag(z)-imag(zold))^b zold = fn3(z) z = (y +flip(x)) z = ( (fn1(z)) - (fn2(zold)) )^d bailout: |z| < f default: title = "bills_xy-trade6" param p1 caption = "p1" default = (1.0,0) endparam param p2 caption = "p2" default = (0,1.0) endparam param p3 caption = "p3bail(f)" default = (1.0,0) endparam } billsfn2i { init: z = pixel, a = zpoint = @p1^z loop: temp = z z = (z^@p3 - zpoint^@p2) / a zpoint = fn1(temp) bailout: |zpoint| <= @bailout default: title = "billsfn2i" param bailout caption = "bailout" default = 4.0 endparam param p1 caption = "p1" default = (4.0,0) endparam param p2 caption = "p2" default = (1.0,0) endparam param p3 caption = "p3" default = (1.0,0) endparam } ;***************************************** pendulum-ANV { ; The basic is a formula of pendulum oscillating time. ; Time=2*PI*(sqrt(length/planetary gravity)) ; Planetary gravity = sqr(meter/sec) - 9.8 earth. ; Andre Vandergoten - November 2002 global: ; .... init: T = 2*#pi*(sqrt(@length / (@gravity^2))) z = fn1(T ^(1/ #pixel)) loop: z = fn2(z ^@squary) bailout: |z| < @bailout default: title = " pendulum-ANV " param bailout caption = " bailout-def-1.0 " default = -1.0 endparam param length caption = " length-def-3.0 " default = 3.0 endparam param gravity caption = " gravity-def-1.10 " default = 1.10 endparam param squary caption = " squary-def-1.10 " default = 1.10 endparam } ;******************************************** Map1{ ; Andre Vandergoten - November 2002 init: z = #pixel float a1 = sqrt(2) float a2 = @iks^2 + 1 float a3 = @iks1 + sqrt(2) float a4 = @iks2 - sqrt(2) float a5 = @iks3 -1 loop: z = fn1(z * (a1^a2^a3^a4^a5)) ^ (1/z) bailout: |z| < @bailout default: title = " Map1" param bailout caption = " bailout-def-4.0 " default = 4.0 endparam float param iks caption = " iks-def-0.3 " default = 0.3 endparam float param iks1 caption = " iks1-def-0.4 " default = 0.4 endparam float param iks2 caption = " iks2-def-0.5 " default = 0.5 endparam float param iks3 caption = " iks3-def-0.6 " default = 0.6 endparam } ;********************************************** pixel-A { ; Andre Vandergoten - December 2002 init: z = fn4(fn3(fn2(fn1(#pixel-@e1)))) bailout: @inside default: title = "pixel-A" param e1 caption = "e1" default = -1.0 endparam param inside caption = "Inside" default = false endparam } ;************************************************** Map2 { ; Basic from Samuel Monnier ; Adapted to UFM - Andre Vandergoten - Jan 2003 loop: if(@choice==0) z = -(#pixel-@c)*1i*exp(1i*pi/180*@rot)/@size arg = atan2(z) arg = -round(arg/(2*pi)*@order)/@order*(2*pi) z = fn1(z*exp(1i*arg)) z = z^5+z^3+@ce elseif(@choice==1) z = -(#pixel-@c)*1i*exp(1i*pi/180*@rot)/@size arg = atan2(z) arg = -round(arg/(2*pi)*@order)/@order*(2*pi) z = z*exp(1i*arg) z = z^5+z^3+@ce elseif(@choice==2) z = -(#pixel-@c)*1i*exp(1i*pi/180*@rot)/@size arg = atan2(z) arg = -round(arg/(2*pi)*@order)/@order*(2*pi) z = z*exp(1i*arg) endif bailout: |z| < @bailout default: title = "Map2" param choice caption = "choice" default = 2 enum = "0" "1" "2" endparam param bailout caption = "bailout" default = 1.0 endparam param order caption = "Polygon Order" default = 5 endparam param c caption = "Center" default = (0,0) endparam param rot caption = "Rotation" default = 0.0 endparam param size caption = "Size" default = 1.0 endparam param ce caption = "ce" default = 0.31478 endparam } ****************************************************** Map3 { ; Andre Vandergoten 13-3-2003 init: loop: if @caseloop == 0 #z = #pixel c = #z z = c^3 + fn1(#z) elseif @caseloop == 1 #z = #pixel c = #z z = fn1(c^3 + #z) elseif @caseloop == 2 #z = #pixel c = fn1(#z) z = c^3 + #z elseif @caseloop == 3 #z =#pixel c = #z z = fn1(c/3 + #z) elseif @caseloop == 4 #z = #pixel c = #z z = fn1((c^3 + #z)*(c^2 - #z)) elseif @caseloop == 5 #z = #pixel c = #z z = fn1((c^3 + #z)+(c^2 - #z)) elseif @caseloop == 6 #z = #pixel c = #z z = fn1((c^3 + #z^2)/(c^2 - #z)) elseif @caseloop == 7 #z = #pixel c = #z z = fn1((c^3 + #z^2)-(c^2 -1/#z)) endif bailout: |#z| < @bailout default: title = "Map3" param bailout caption = "bailout" default = 0.0 endparam param caseloop caption = "caseloop" default = 0 enum = "0" "1" "2" "3" "4" "5" "6" "7" endparam } ;****************************************************** ANV3D{ ; Thanks to Stig Pettersson for sharing his formulas. ; I extract this ANV3D from his "Raytrace" and add ; functionalities . ; To use this module you will need the ; coloring-algoritm Raytrace in spr.ucl ; although other ucl's can be used. ; A method to learn 3D: ; Play with parameters , for your convenience ; I add to the parameter definitions the default values ; this makes it easy to return to the basic settings. ; May 2003 ; ; Andre Vandergoten - avandergoten@skynet.be ; ;++++++++++++++++++++++++++++++++++++++++++++ init: bool setflag=true bool tflag=false int iter=0 int m=0 int mm=0 int count2=0 complex z=0 complex z1=0 complex zh=0 complex cri=0 complex cjk=0 complex temp=0 float color1=-1.23456789e20 float color2=1.23456789e20 float temp0=0 float lightdx=0 float lightdy=0 float lightdz=0 float lightlength=0 float flength=0 float fx=0 float fy=0 float fz=0 float tangle=0 float buff0=0 float buff1=0 float buff2=0 float buff3=0 float buff4=0 float diffx=0 float diffy=0 float count=0 float count0=0 float tangle=0 float xx=0 float yy=0 float zz=0 float ww=0 float length=0.0 float xscreen=real(#screenmax) float yscreen=imag(#screenmax) float zscreen=@zscreen float xmin=0 float ymin=0 float xmax=0 float ymax=0 if xscreen/yscreen>4/3 temp0=3/#magn float temp0=-3/#magn ymin=imag(#center)-temp0/2 ymax=ymin+temp0 temp0=-xscreen/yscreen*temp0 xmin=real(#center)-temp0/2 xmax=xmin+temp0 else temp0=4/#magn xmin=real(#center)-temp0/2 xmax=xmin+temp0 temp0=-yscreen/xscreen*temp0 ymin=imag(#center)-temp0/2 ymax=ymin+temp0 endif float zmax=@zorig+@zdist/2 float zmin=zmax-@zdist if @view==1 zmax=@zorig zmin=@zorig endif if (@zmagn==true)&&(@view!=1) zmax=@zorig+@zdist/2/#magn zmin=zmax-@zdist/#magn endif if (@autoscale==true)&&(@view==0) zscreen=xscreen/(xmax-xmin)*(zmax-zmin) endif float dx=(xmax-xmin)/xscreen float dy=(ymax-ymin)/yscreen float dz=(zmax-zmin)/zscreen float origx=real(#center) float origy=imag(#center) float origz=@zorig float vx=@xrot/180.0*#pi float vy=@yrot/180.0*#pi float vz=@zrot/180.0*#pi float cosx=0 float cosy=0 float cosz=0 float sinx=0 float siny=0 float sinz=0 if @xrot==90.0 sinx=1.0 cosx=0 elseif @xrot==-90 sinx=-1.0 cosx=0 elseif abs(@xrot)==180 sinx=0 cosx=-1 else cosx=cos(vx) sinx=sin(vx) endif if @yrot==90.0 siny=1.0 cosy=0 elseif @yrot==-90 siny=-1.0 cosy=0 elseif abs(@yrot)==180 siny=0 cosy=-1 else cosy=cos(vy) siny=sin(vy) endif if @zrot==90.0 sinz=1.0 cosz=0 elseif @zrot==-90 sinz=-1.0 cosz=0 elseif abs(@zrot)==180 sinz=0 cosz=-1 else cosz=cos(vz) sinz=sin(vz) endif float rminx=0 float rminy=0 float rminz=0 float xy=0 float xz=0 float yx=0 float yz=0 float zx=0 float zy=0 float tempx=0 float tempy=0 float tempz=0 float dxx=0 float dxy=0 float dxz=0 float dyx=0 float dyy=0 float dyz=0 float dzx=0 float dzy=0 float dzz=0 float dzx1=0 float dzy1=0 float dzz1=0 ; rotating the space and creation of unit-vectors xx=rminx=xmin yy=rminy=ymin zz=rminz=zmin if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif rminx=xx rminy=yy rminz=zz xx=tempx=xmax yy=tempy=ymin zz=tempz=zmin if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif tempx=xx tempy=yy tempz=zz dxx=(tempx-rminx)/xscreen dxy=(tempy-rminy)/xscreen dxz=(tempz-rminz)/xscreen xx=tempx=xmin yy=tempy=ymax zz=tempz=zmin if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif tempx=xx tempy=yy tempz=zz dyx=(tempx-rminx)/yscreen dyy=(tempy-rminy)/yscreen dyz=(tempz-rminz)/yscreen xx=tempx=xmin yy=tempy=ymin zz=tempz=zmax if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif tempx=xx tempy=yy tempz=zz dzx=(tempx-rminx)/zscreen dzy=(tempy-rminy)/zscreen dzz=(tempz-rminz)/zscreen dzx1=dzx/@prec dzy1=dzy/@prec dzz1=dzz/@prec ; end rotation and creating unit-vectors 'puuh' ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==0 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) m=0 repeat temp=z1^@kwadzet-real(zh)^@kwad+imag(zh)^@kwad2-2*flip(real(zh)*imag(zh))+cri zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) repeat temp=1/(z1^@kwadzet-real(zh)^@kwad+imag(zh)^@kwad2-2*flip(real(zh)*imag(zh))+cri) zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=z1 ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==1 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) m=0 repeat temp=#pi*(z1^@kwadzet-real(zh)^@kwad+imag(zh)^@kwad2-2*flip(real(zh)*imag(zh))+cri) zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) repeat temp=1/(z1^@kwadzet-real(zh)^@kwad+imag(zh)^@kwad2-2*flip(real(zh)*imag(zh))+cri) zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=z1 ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==2 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) m=0 repeat temp=z1^@kwadzet-imag(zh)^@kwad+real(zh)^@kwad2-2*flip(imag(zh)*real(zh))+cri zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) repeat temp=1/(z1^@kwadzet-imag(zh)^@kwad+real(zh)^@kwad2-2*flip(imag(zh)*real(zh))+cri) zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=z1 ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==3 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) m=0 repeat temp=z1*z1*z1^@kwadzet-imag(zh)^@kwad+real(zh)^@kwad2-3*flip(imag(zh)*real(zh))+cri zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) repeat temp=1/(z1*z1*z1^@kwadzet-imag(zh)^@kwad+real(zh)^@kwad2-3*flip(imag(zh)*real(zh))+cri) zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=z1 ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==4 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) m=0 repeat temp=1/(z1^@kwadzet-real(zh)^@kwad+imag(zh)^@kwad2-2*flip(real(zh)*imag(zh))+cri) zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) repeat temp=z1^@kwadzet-real(zh)^@kwad+imag(zh)^@kwad2-2*flip(real(zh)*imag(zh))+cri zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=z1 ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==5 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) m=0 repeat temp=1/(#pi*(z1^@kwadzet-real(zh)^@kwad+imag(zh)^@kwad2-2*flip(real(zh)*imag(zh))+cri)) zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) repeat temp=z1^@kwadzet-real(zh)^@kwad+imag(zh)^@kwad2-2*flip(real(zh)*imag(zh))+cri zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=z1 ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==6 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) m=0 repeat temp=1/(z1^@kwadzet-imag(zh)^@kwad+real(zh)^@kwad2-2*flip(imag(zh)*real(zh))+cri) zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) repeat temp=z1^@kwadzet-imag(zh)^@kwad+real(zh)^@kwad2-2*flip(imag(zh)*real(zh))+cri zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=z1 ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==7 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) m=0 repeat temp=1/(z1*z1*z1^@kwadzet-imag(zh)^@kwad+real(zh)^@kwad2-3*flip(imag(zh)*real(zh))+cri) zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) cri=@cr+flip(@ci) cjk=@cj+flip(@ck) repeat temp=z1*z1*z1^@kwadzet-imag(zh)^@kwad+real(zh)^@kwad2-3*flip(imag(zh)*real(zh))+cri zh=@zeth*(real(z1)*real(zh)-imag(z1)*imag(zh)+flip(real(z1)*imag(zh)+imag(z1)*real(zh)))+cjk z1=temp length=|z1|+|zh| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=z1 ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ loop: if @view>0 iter=iter+1 elseif buff0>zmax if @background==0 z=tangle+flip(color2) elseif @background==1 setflag=false endif elseif tflag==true setflag=false else z=tangle+flip(color1) endif bailout: (setflag==false&&@view==0)|| \ (iter0) default: title = "ANV3D" method=guessing periodicity=0 maxiter=10 ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL heading caption = " Part one " endheading param zscreen caption="Screen-depth-DEF=320.0" default=320.0 min=0 endparam param zorig caption="z-center-DEF=0.0" default=0.0 endparam param zdist caption="z-distance-DEF=4.0" default=4.0 endparam param zmagn caption="z-magnify-DEF=false" default=false endparam param autoscale caption="Auto scaling-DEF=false" default=false endparam param xrot caption="x-rotation-DEF=0.0" default=0.0 endparam param yrot caption="y-rotation-DEF=0.0" default=0.0 endparam param zrot caption="z-rotation-DEF=0.0" default=0.0 endparam param local caption="Local rotation-DEF=false" default=false endparam ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL heading caption = " Formulas,loop and spots " endheading param formula caption = "Formulas-DEF=0" enum="0" "1" "2" "3" "4" "5" "6" "7" default=0 endparam param delta caption="Delta-DEF=1.0" default=1.0 endparam param fourthdim caption = "fourthdim-DEF=a-real" enum="a-real or zr" "a-imag or zi" "b-real or zj" "b-imag or zk" default=0 endparam param fourthvalue caption="4-dim-value-DEF=4-dim" default=0.0 endparam param cr caption="cr-DEF=0.0" default=0.0 endparam param ci caption="ci-DEF=0.0" default=0.0 endparam param cj caption="cj-DEF=0.0" default=0.0 endparam param ck caption="ck-DEF=0.0" default=0.0 endparam param kwad caption = " kwad-DEF=2.0 " default = 2.0 endparam param kwad2 caption = " kwad2-DEF=2.0 " default = 2.0 endparam param zeth caption = " zeth-DEF=2.0 " default = 2.0 endparam param kwadzet caption = " kwadzet-DEF=2.0 " default = 2.0 endparam param touchscreen caption="Screen-touch-DEF=false" default=false endparam param prec caption="Precision-DEF=10.0" default=10.0 min=1.0 endparam param background enum="outside" "inside" caption = "background-DEF=inside" default=1 endparam param lightx caption="Light-x-DEF=0.0" default=0.0 endparam param lighty caption="Light-y-DEF=0.0" default=0.0 endparam param lightz caption="Light-z-DEF=-6.0" default=-6.0 endparam param bailout caption="Bailout-DEF=4.0" default=4.0 min=0.0 endparam ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL heading caption = " Common " endheading param view caption = "view-DEF=3-dim" enum="3-dim" "2-dim-center" "2-dim-screen" default=0 endparam } ;************************************************ ANV3D-2 { ; Thanks to Stig Pettersson for sharing his formulas. ; I extract this ANV3D-2 from his "Raytrace" and add ; functionalities . ; To use this module you will need the ; coloring-algoritm Raytrace in spr.ucl ; although other ucl's can be used. ; A method to learn 3D: ; Play with parameters , for your convenience ; I add to the parameter definitions the default values ; this makes it easy to return to the basic settings. ; May 2003 ; ; Andre Vandergoten - avandergoten@skynet.be ; ;++++++++++++++++++++++++++++++++++++++++++++ init: bool setflag=true bool tflag=false int iter=0 int m=0 int mm=0 int count2=0 complex z=0 complex z1=0 complex zh=0 float color1=-1.23456789e20 float color2=1.23456789e20 float temp0=0 float lightdx=0 float lightdy=0 float lightdz=0 float lightlength=0 float flength=0 float fx=0 float fy=0 float fz=0 float tangle=0 float buff0=0 float buff1=0 float buff2=0 float buff3=0 float buff4=0 float diffx=0 float diffy=0 float count=0 float count0=0 float tangle=0 float xx=0 float yy=0 float zz=0 float ww=0 float length=0.0 float xscreen=real(#screenmax) float yscreen=imag(#screenmax) float zscreen=@zscreen float xmin=0 float ymin=0 float xmax=0 float ymax=0 if xscreen/yscreen>4/3 temp0=3/#magn float temp0=-3/#magn ymin=imag(#center)-temp0/2 ymax=ymin+temp0 temp0=-xscreen/yscreen*temp0 xmin=real(#center)-temp0/2 xmax=xmin+temp0 else temp0=4/#magn xmin=real(#center)-temp0/2 xmax=xmin+temp0 temp0=-yscreen/xscreen*temp0 ymin=imag(#center)-temp0/2 ymax=ymin+temp0 endif float zmax=@zorig+@zdist/2 float zmin=zmax-@zdist if @view==1 zmax=@zorig zmin=@zorig endif if (@zmagn==true)&&(@view!=1) zmax=@zorig+@zdist/2/#magn zmin=zmax-@zdist/#magn endif if (@autoscale==true)&&(@view==0) zscreen=xscreen/(xmax-xmin)*(zmax-zmin) endif float dx=(xmax-xmin)/xscreen float dy=(ymax-ymin)/yscreen float dz=(zmax-zmin)/zscreen float origx=real(#center) float origy=imag(#center) float origz=@zorig float vx=@xrot/180.0*#pi float vy=@yrot/180.0*#pi float vz=@zrot/180.0*#pi float cosx=0 float cosy=0 float cosz=0 float sinx=0 float siny=0 float sinz=0 if @xrot==90.0 sinx=1.0 cosx=0 elseif @xrot==-90 sinx=-1.0 cosx=0 elseif abs(@xrot)==180 sinx=0 cosx=-1 else cosx=cos(vx) sinx=sin(vx) endif if @yrot==90.0 siny=1.0 cosy=0 elseif @yrot==-90 siny=-1.0 cosy=0 elseif abs(@yrot)==180 siny=0 cosy=-1 else cosy=cos(vy) siny=sin(vy) endif if @zrot==90.0 sinz=1.0 cosz=0 elseif @zrot==-90 sinz=-1.0 cosz=0 elseif abs(@zrot)==180 sinz=0 cosz=-1 else cosz=cos(vz) sinz=sin(vz) endif float rminx=0 float rminy=0 float rminz=0 float xy=0 float xz=0 float yx=0 float yz=0 float zx=0 float zy=0 float tempx=0 float tempy=0 float tempz=0 float dxx=0 float dxy=0 float dxz=0 float dyx=0 float dyy=0 float dyz=0 float dzx=0 float dzy=0 float dzz=0 float dzx=0 float dzy=0 float dzz=0 float dzx1=0 float dzy1=0 float dzz1=0 ; rotating the space and creation of unit-vectors xx=rminx=xmin yy=rminy=ymin zz=rminz=zmin if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif rminx=xx rminy=yy rminz=zz xx=tempx=xmax yy=tempy=ymin zz=tempz=zmin if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif tempx=xx tempy=yy tempz=zz dxx=(tempx-rminx)/xscreen dxy=(tempy-rminy)/xscreen dxz=(tempz-rminz)/xscreen xx=tempx=xmin yy=tempy=ymax zz=tempz=zmin if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif tempx=xx tempy=yy tempz=zz dyx=(tempx-rminx)/yscreen dyy=(tempy-rminy)/yscreen dyz=(tempz-rminz)/yscreen xx=tempx=xmin yy=tempy=ymin zz=tempz=zmax if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif tempx=xx tempy=yy tempz=zz dzx=(tempx-rminx)/zscreen dzy=(tempy-rminy)/zscreen dzz=(tempz-rminz)/zscreen dzx1=dzx/@prec dzy1=dzy/@prec dzz1=dzz/@prec ; end rotation and creating unit-vectors 'puuh' ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==0 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) m=0 z=z1 repeat z=fn1((zh^@zeth)*(z^@zet)*(1-z)) length=|z| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) z=z1 repeat z=1/((zh^@zeth)*(z^@zet)*(1-z)) length=|z| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 endif ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==1 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) m=0 z=z1 repeat z=real(fn1((zh^@zeth)*(z^@zet)*(1-z))) length=|z| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) z=z1 repeat z=1/((zh^@zeth)*(z^@zet)*(1-z)) length=|z| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 endif ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if @formula==2 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif z1=xx+flip(yy) zh=zz+flip(ww) m=0 z=z1 repeat z=imag(fn1((zh^@zeth)*(z^@zet)*(1-z))) length=|z| m=m+1 until m>=#maxiter || length>=@bailout mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 z1=xx+flip(yy) zh=zz+flip(ww) z=z1 repeat z=1/((zh^@zeth)*(z^@zet)*(1-z)) length=|z| m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 endif ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ loop: if @view>0 iter=iter+1 elseif buff0>zmax if @background==0 z=tangle+flip(color2) elseif @background==1 setflag=false endif elseif tflag==true setflag=false else z=tangle+flip(color1) endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ bailout: (setflag==false&&@view==0)|| \ (iter0) default: title = "ANV3D-2" method=guessing periodicity=0 maxiter=10 ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL param zscreen caption="Sc-dpth-DEF=320.0" default=320.0 min=0 endparam param zorig caption="z-cnter-DEF=0.0" default=0.0 endparam param zdist caption="z-distnce-DEF=4.0" default=4.0 endparam param zmagn caption="z-magnify-DEF=false" default=false endparam param autoscale caption="Auto scling-DEF=false" default=false endparam param xrot caption="x-rotation-DEF=0.0" default=0.0 endparam param yrot caption="y-rotation-DEF=0.0" default=0.0 endparam param zrot caption="z-rotation-DEF=0.0" default=0.0 endparam param local caption="Local rotion-DEF=false" default=false endparam ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL param formula caption = "formula-DEF=0" enum="0" "1" "2" default=0 endparam param delta caption="Delta-DEF=1.0" default=1.0 endparam param fourthdim caption = "fourthdim-DEF=a-real" enum="a-real or zr" "a-imag or zi" "b-real or zj" "b-imag or zk" default=0 endparam param fourthvalue caption="4-dim-value-DEF=0.0" default=0.0 endparam param bailout caption="Bailout-DEF=4.0" default=4.0 min=0.0 endparam param touchscreen caption="Scren-tuch-DEF=false" default=false endparam param zeth caption = "zeth-DEF=1.0" default = 1.0 endparam param zet caption = "zet-DEF=1.0" default = 1.0 endparam param background caption = "background-DEF=inside" enum="outside" "inside" default=1 endparam param lightx caption="Light-x-DEF=0.0" default=0.0 endparam param lighty caption="Light-y-DEF=0.0" default=0.0 endparam param lightz caption="Light-z-DEF=-6.0" default=-6.0 endparam ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL param view caption = "view-DEF=3-dim" enum="3-dim" "2-dim-center" "2-dim-screen" default=0 endparam param prec caption="Precision-DEF=10.0" default=10.0 min=1.0 endparam } ;********************************************************************* ANV3D-3 { ; Thanks to Stig Pettersson for sharing his formulas. ; I extract this ANV3D from his "Raytrace" and add ; functionalities . ; To use this module you will need the ; coloring-algoritm Raytrace in spr.ucl ; although other ucl's can be used. ; A method to learn 3D: ; Play with parameters , for your convenience ; I add to the parameter definitions the default values ; this makes it easy to return to the basic settings. ; June 2003 ; ; Andre Vandergoten - avandergoten@skynet.be ; ;++++++++++++++++++++++++++++++++++++++++++++ init: bool setflag=true bool tflag=false int iter=0 int m=0 int mm=0 int count2=0 complex z=0 float a=0 float b=0 float c=0 float d=0 float ee=0 float f=0 float g=0 float h=0 float q=0 float r=0 float r2=0 float r3=0 float r4=0 float r5=0 float r6=0 float r7=0 float r8=0 float ii=0 float j=0 float k=0 float l=0 float u=0 float v=0 float w=0 float a1=0 float b1=0 float c1=0 float d1=0 float color1=-1.23456789e20 float color2=1.23456789e20 float temp0=0 float lightdx=0 float lightdy=0 float lightdz=0 float lightlength=0 float flength=0 float fx=0 float fy=0 float fz=0 float tangle=0 float buff0=0 float buff1=0 float buff2=0 float buff3=0 float buff4=0 float diffx=0 float diffy=0 float count=0 float count0=0 float xx=0 float yy=0 float zz=0 float ww=0 float length=0.0 float xscreen=real(#screenmax) float yscreen=imag(#screenmax) float zscreen=@zscreen float xmin=0 float ymin=0 float xmax=0 float ymax=0 if xscreen/yscreen>4/3 temp0=3/#magn float temp0=-3/#magn ymin=imag(#center)-temp0/2 ymax=ymin+temp0 temp0=-xscreen/yscreen*temp0 xmin=real(#center)-temp0/2 xmax=xmin+temp0 else temp0=4/#magn xmin=real(#center)-temp0/2 xmax=xmin+temp0 temp0=-yscreen/xscreen*temp0 ymin=imag(#center)-temp0/2 ymax=ymin+temp0 endif float zmax=@zorig+@zdist/2 float zmin=zmax-@zdist if @view==1 zmax=@zorig zmin=@zorig endif if (@zmagn==true)&&(@view!=1) zmax=@zorig+@zdist/2/#magn zmin=zmax-@zdist/#magn endif if (@autoscale==true)&&(@view==0) zscreen=xscreen/(xmax-xmin)*(zmax-zmin) endif float dx=(xmax-xmin)/xscreen float dy=(ymax-ymin)/yscreen float dz=(zmax-zmin)/zscreen float origx=real(#center) float origy=imag(#center) float origz=@zorig float vx=@xrot/180.0*#pi float vy=@yrot/180.0*#pi float vz=@zrot/180.0*#pi float cosx=0 float cosy=0 float cosz=0 float sinx=0 float siny=0 float sinz=0 if @xrot==90.0 sinx=1.0 cosx=0 elseif @xrot==-90 sinx=-1.0 cosx=0 elseif abs(@xrot)==180 sinx=0 cosx=-1 else cosx=cos(vx) sinx=sin(vx) endif if @yrot==90.0 siny=1.0 cosy=0 elseif @yrot==-90 siny=-1.0 cosy=0 elseif abs(@yrot)==180 siny=0 cosy=-1 else cosy=cos(vy) siny=sin(vy) endif if @zrot==90.0 sinz=1.0 cosz=0 elseif @zrot==-90 sinz=-1.0 cosz=0 elseif abs(@zrot)==180 sinz=0 cosz=-1 else cosz=cos(vz) sinz=sin(vz) endif float rminx=0 float rminy=0 float rminz=0 float xy=0 float xz=0 float yx=0 float yz=0 float zx=0 float zy=0 float tempx=0 float tempy=0 float tempz=0 float dxx=0 float dxy=0 float dxz=0 float dyx=0 float dyy=0 float dyz=0 float dzx=0 float dzy=0 float dzz=0 float dzx=0 float dzy=0 float dzz=0 float dzx1=0 float dzy1=0 float dzz1=0 ; rotating the space and creation of unit-vectors xx=rminx=xmin yy=rminy=ymin zz=rminz=zmin if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif rminx=xx rminy=yy rminz=zz xx=tempx=xmax yy=tempy=ymin zz=tempz=zmin if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif tempx=xx tempy=yy tempz=zz dxx=(tempx-rminx)/xscreen dxy=(tempy-rminy)/xscreen dxz=(tempz-rminz)/xscreen xx=tempx=xmin yy=tempy=ymax zz=tempz=zmin if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif tempx=xx tempy=yy tempz=zz dyx=(tempx-rminx)/yscreen dyy=(tempy-rminy)/yscreen dyz=(tempz-rminz)/yscreen xx=tempx=xmin yy=tempy=ymin zz=tempz=zmax if @local==true xx=xx-origx yy=yy-origy zz=zz-origz endif xy=yy*cosx-zz*sinx xz=yy*sinx+zz*cosx yy=xy zz=xz yx=xx*cosy+zz*siny yz=-xx*siny+zz*cosy xx=yx zz=yz zx=xx*cosz-yy*sinz zy=xx*sinz+yy*cosz xx=zx yy=zy if @local==true xx=xx+origx yy=yy+origy zz=zz+origz endif tempx=xx tempy=yy tempz=zz dzx=(tempx-rminx)/zscreen dzy=(tempy-rminy)/zscreen dzz=(tempz-rminz)/zscreen dzx1=dzx/@prec dzy1=dzy/@prec dzz1=dzz/@prec ;******0******************************************************** if @formula==0 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=@ha*(a*a) r6=@hb*(b*b) r7=@hc*(c*c) r8=@hd*(d*d) u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=@he*(-r7+r8) r2=@hf*(r5-r6) r3=@hg*(6*c*d) r4=@hh*(6*a*b) a1=@hi*(r5*a+3*a*(-r6+r)+b*r3-3*(a*u+2*(b*v+c*w+d*q))+ii) b1=@hj*(-r6*b+3*b*(r5+r)-a*r3-3*(b*u+2*(-a*v+d*w-c*q))+j) c1=@hk*(-r7*c+3*c*(r2+r8)-r4*d-3*(c*u+2*(d*v-a*w-b*q))+k) d1=@hl*(r8*d+3*d*(r2-r7)+r4*c-3*(d*u+2*(-c*v-b*w+a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout ;här mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=a*a r6=b*b r7=c*c r8=d*d u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=-r7+r8 r2=r5-r6 r3=6*c*d r4=6*a*b a1=1/(r5*a+3*a*(-r6+r)+b*r3-3*(a*u+2*(b*v+c*w+d*q))+ii) b1=1/(-r6*b+3*b*(r5+r)-a*r3-3*(b*u+2*(-a*v+d*w-c*q))+j) c1=1/(-r7*c+3*c*(r2+r8)-r4*d-3*(c*u+2*(d*v-a*w-b*q))+k) d1=1/(r8*d+3*d*(r2-r7)+r4*c-3*(d*u+2*(-c*v-b*w+a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=a+flip(b) ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif ;*****************1********************************************************* elseif @formula==1 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=@ha*(a*a) r6=@hb*(b*b) r7=@hc*(c*c) r8=@hd*(d*d) u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=@he*(-r7+r8) r2=@hf*(r5-r6) r3=@hg*(6*c*d) r4=@hh*(6*a*b) a1=@hi*(r5*a-3*a*(-r6+r)-b*r3-3*(a*u-2*(b*v-c*w-d*q))+ii) b1=@hj*(-r6*b+3*b*(r5+r)-a*r3-3*(b*u+2*(-a*v+d*w-c*q))+j) c1=@hk*(-r7*c+3*c*(r2+r8)-r4*d-3*(c*u+2*(d*v-a*w-b*q))+k) d1=@hl*(r8*d+3*d*(r2-r7)+r4*c-3*(d*u+2*(-c*v-b*w+a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout ;här mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=a*a r6=b*b r7=c*c r8=d*d u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=-r7+r8 r2=r5-r6 r3=6*c*d r4=6*a*b a1=1/(r5*a-3*a*(-r6+r)-b*r3-3*(a*u-2*(b*v-c*w-d*q))+ii) b1=1/(-r6*b+3*b*(r5+r)-a*r3-3*(b*u+2*(-a*v+d*w-c*q))+j) c1=1/(-r7*c+3*c*(r2+r8)-r4*d-3*(c*u+2*(d*v-a*w-b*q))+k) d1=1/(r8*d+3*d*(r2-r7)+r4*c-3*(d*u+2*(-c*v-b*w+a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=a+flip(b) ;tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif ;******2******************************************************** elseif @formula==2 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=@ha*(a*a) r6=@hb*(b*b) r7=@hc*(c*c) r8=@hd*(d*d) u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=@he*(-r7+r8) r2=@hf*(r5-r6) r3=@hg*(6*c*d) r4=@hh*(6*a*b) a1=@hi*(r5*a+3*a*(-r6+r)+b*r3-3*(a*u+2*(b*v+c*w+d*q))+ii) b1=@hj*(r6*b-3*b*(r5-r)+a*r3+3*(b*u-2*(a*v-d*w+c*q))+j) c1=@hk*(-r7*c+3*c*(r2+r8)-r4*d-3*(c*u+2*(d*v-a*w-b*q))+k) d1=@hl*(r8*d+3*d*(r2-r7)+r4*c-3*(d*u+2*(-c*v-b*w+a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout ;här mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=a*a r6=b*b r7=c*c r8=d*d u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=-r7+r8 r2=r5-r6 r3=6*c*d r4=6*a*b a1=1/(r5*a+3*a*(-r6+r)+b*r3-3*(a*u+2*(b*v+c*w+d*q))+ii) b1=1/(r6*b-3*b*(r5-r)+a*r3+3*(b*u-2*(a*v-d*w+c*q))+j) c1=1/(-r7*c+3*c*(r2+r8)-r4*d-3*(c*u+2*(d*v-a*w-b*q))+k) d1=1/(r8*d+3*d*(r2-r7)+r4*c-3*(d*u+2*(-c*v-b*w+a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=a+flip(b) ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif ;******3******************************************************** elseif @formula==3 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=@ha*(a*a) r6=@hb*(b*b) r7=@hc*(c*c) r8=@hd*(d*d) u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=@he*(-r7+r8) r2=@hf*(r5-r6) r3=@hg*(6*c*d) r4=@hh*(6*a*b) a1=@hi*(r5*a+3*a*(-r6+r)+b*r3-3*(a*u+2*(b*v+c*w+d*q))+ii) b1=@hj*(-r6*b+3*b*(r5+r)-a*r3-3*(b*u+2*(-a*v+d*w-c*q))+j) c1=@hk*(r7*c-3*c*(r2-r8)+r4*d+3*(c*u-2*(d*v+a*w+b*q))+k) d1=@hl*(r8*d+3*d*(r2-r7)+r4*c-3*(d*u+2*(-c*v-b*w+a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout ;här mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=a*a r6=b*b r7=c*c r8=d*d u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=-r7+r8 r2=r5-r6 r3=6*c*d r4=6*a*b a1=1/(r5*a+3*a*(-r6+r)+b*r3-3*(a*u+2*(b*v+c*w+d*q))+ii) b1=1/(-r6*b+3*b*(r5+r)-a*r3-3*(b*u+2*(-a*v+d*w-c*q))+j) c1=1/(r7*c-3*c*(r2-r8)+r4*d+3*(c*u-2*(d*v+a*w+b*q))+k) d1=1/(r8*d+3*d*(r2-r7)+r4*c-3*(d*u+2*(-c*v-b*w+a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=a+flip(b) endif ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false ;******4******************************************************** elseif @formula==4 count0=0 repeat diffx=0 diffy=0 if count0==1 diffx=-@delta elseif count0==2 diffx=@delta elseif count0==3 diffy=@delta elseif count0==4 diffy=-@delta endif tempx=rminx+(real(#screenpixel)+diffx)*dxx+(imag(#screenpixel)+diffy)*dyx tempy=rminy+(real(#screenpixel)+diffx)*dxy+(imag(#screenpixel)+diffy)*dyy tempz=rminz+(real(#screenpixel)+diffx)*dxz+(imag(#screenpixel)+diffy)*dyz if @fourthdim==3 xx=tempx yy=tempy zz=tempz ww=@fourthvalue elseif @fourthdim==2 xx=tempx yy=tempy zz=@fourthvalue ww=tempz elseif @fourthdim==1 xx=tempz yy=@fourthvalue zz=tempx ww=tempy else xx=@fourthvalue yy=tempz zz=tempx ww=tempy endif count=0.0 repeat if @fourthdim==3 xx=xx+dzx yy=yy+dzy zz=zz+dzz elseif @fourthdim==2 xx=xx+dzx yy=yy+dzy ww=ww+dzz elseif @fourthdim==1 xx=xx+dzz zz=zz+dzx ww=ww+dzy else yy=yy+dzz zz=zz+dzx ww=ww+dzy endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=@ha*(a*a) r6=@hb*(b*b) r7=@hc*(c*c) r8=@hd*(d*d) u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=@he*(r7-r8) r2=@hf*(r5-r6) r3=@hg*(6*c*d) r4=@hh*(6*a*b) a1=@hi*(r5*a+3*a*(-r6+r)+b*r3-3*(a*u+2*(b*v+c*w+d*q))+ii) b1=@hj*(-r6*b+3*b*(r5+r)-a*r3-3*(b*u+2*(-a*v+d*w-c*q))+j) c1=@hk*(-r7*c+3*c*(r2+r8)-r4*d-3*(c*u+2*(d*v-a*w-b*q))+k) d1=@hl*(r8*d-3*d*(r2+r7)-r4*c+3*(d*u-2*(c*v+b*w-a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout ;här mm=m count=count+1 until (count>=zscreen || length<@bailout)||(@view>0) if count==1 if m>=#maxiter&&@view==0&&@touchscreen==true tflag=true endif endif if @view>0 count0=6 elseif (length<@bailout)&&(count>1) count2=0 repeat if @fourthdim==3 xx=xx-dzx1 yy=yy-dzy1 zz=zz-dzz1 elseif @fourthdim==2 xx=xx-dzx1 yy=yy-dzy1 ww=ww-dzz1 elseif @fourthdim==1 xx=xx-dzz1 zz=zz-dzx1 ww=ww-dzy1 else yy=yy-dzz1 zz=zz-dzx1 ww=ww-dzy1 endif m=0 a=xx b=yy c=zz d=ww ee=@cr f=@ci g=@cj h=@ck ii=@br j=@bi k=@bj l=@bk repeat r5=a*a r6=b*b r7=c*c r8=d*d u=ee*ee-f*f-g*g+h*h v=g*h-ee*f w=f*h-ee*g q=ee*h+f*g r=r7-r8 r2=r5-r6 r3=6*c*d r4=6*a*b a1=1/(r5*a+3*a*(-r6+r)+b*r3-3*(a*u+2*(b*v+c*w+d*q))+ii) b1=1/(-r6*b+3*b*(r5+r)-a*r3-3*(b*u+2*(-a*v+d*w-c*q))+j) c1=1/(-r7*c+3*c*(r2+r8)-r4*d-3*(c*u+2*(d*v-a*w-b*q))+k) d1=1/(r8*d-3*d*(r2+r7)-r4*c+3*(d*u-2*(c*v+b*w-a*q))+l) a=a1 b=b1 c=c1 d=d1 length=a*a+b*b+c*c+d*d m=m+1 until m>=#maxiter || length>@bailout count2=count2+1 until length>=@bailout if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif elseif count==1 if count0==0 buff0=zmin+count*dz-(count2-1)*dz/@prec elseif count0==1 buff1=zmin+count*dz-(count2-1)*dz/@prec elseif count0==2 buff2=zmin+count*dz-(count2-1)*dz/@prec elseif count0==3 buff3=zmin+count*dz-(count2-1)*dz/@prec elseif count0==4 buff4=zmin+count*dz-(count2-1)*dz/@prec endif else if count0==0 buff0=zmax+dz count0=6 elseif count0==1 buff1=zmax+dz elseif count0==2 buff2=zmax+dz elseif count0==3 buff3=zmax+dz elseif count0==4 buff4=zmax+dz endif endif count0=count0+1 until count0>=5 z=a+flip(b) endif ; tracing if @view>0 setflag=false elseif buff0>zmax&&@background>0 setflag=false else lightdx=real(#screenpixel)*dx+xmin-@lightx lightdy=imag(#screenpixel)*dy+ymin-@lighty lightdz=buff0-@lightz lightlength=sqrt(lightdx*lightdx+lightdy*lightdy+lightdz*lightdz) fx=(buff2-buff1)*2*dy fy=-2*dx*(buff4-buff3) fz=-4*dx*dy flength=sqrt(fx*fx+fy*fy+fz*fz) tangle=(fx*lightdx+fy*lightdy+fz*lightdz)/(flength*lightlength) endif if tflag==true&&@view==0 setflag=false endif ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ loop: if @view>0 iter=iter+1 elseif buff0>zmax if @background==0 z=tangle+flip(color2) elseif @background==1 setflag=false endif elseif tflag==true setflag=false else z=tangle+flip(color1) endif bailout: (setflag==false&&@view==0)|| \ (iter0) default: title = "ANV3D-3" method=guessing periodicity=0 maxiter=10 ;lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll heading caption = "Formulas,Trace and Loop" endheading param formula enum="0" "1" "2" "3" "4" default=0 hint="type of formula for raytracing." endparam heading caption = "********** Definition ee,f,g and h " endheading float param cr caption="cr-0.0" default=0.0 hint="real constant for quaternions and hypercomplex calculations. In cubic quaternions \ this corresponds to a-real." endparam float param ci caption="ci-0.0" default=0.0 hint="imaginary constant for quaternions and hypercomplex calculations. In cubic \ quaternions this corresponds to a-imag." endparam float param cj caption="cj-0.0" default=0.0 hint="Second imaginary constant for quaternions and hypercomplex calculations. In cubic \ quaternions this corresponds to a-jmag." endparam float param ck caption="ck-0.0" default=0.0 hint="Third imaginary constant for quaternions and hypercomplex calculations. In cubic \ quaternions this corresponds to a-kmag." endparam heading caption ="********** Definition ii,j,k and l" endheading float param br caption="br-0.0" default=0.0 hint="real constant for cubic quaternions and cubic hypercomplex calculations. \ Corresponds to b-real." endparam float param bi caption="bi-0.0" default=0.0 hint="imaginary constant for cubic quaternions and cubic hypercomplex calculations. \ Corresponds to b-imag." endparam float param bj caption="bj-0.0" default=0.0 hint="second imaginary constant for cubic quaternions and hypercomplex calculations. \ Corresponds to b-jmag." endparam float param bk caption="bk-0.0" default=0.0 hint="third imaginary constant for cubic quaternions and hypercomplex calculations. \ Corresponds to b-kmag." endparam heading caption = "********** Modification r5,r6,r7 and r8" endheading float param ha caption = "ha-1.0" default = 1.0 endparam float param hb caption = "hb-1.0" default = 1.0 endparam float param hc caption = "hc-1.0" default = 1.0 endparam float param hd caption = "hd-1.0" default = 1.0 endparam heading caption = "********** Modification r,r2,r3 and r4" endheading float param he caption = "he-1.0" default = 1.0 endparam float param hf caption = "hf-1.0" default = 1.0 endparam float param hg caption = "hg-1.0" default = 1.0 endparam float param hh caption = "hh-1.0" default = 1.0 endparam heading caption = "********** Modification a1,b1,c1 and d1" endheading float param hi caption = "hi-1.0" default = 1.0 endparam float param hj caption = "hj-1.0" default = 1.0 endparam float param hk caption = "hk-1.0" default = 1.0 endparam float param hl caption = "hl-1.0" default = 1.0 endparam heading caption = "********** End" endheading param delta caption="Delta-1.0" default=1.0 hint="The difference between the points that builds the normal-plane to the lightsource. \ Should normally be 1.0" endparam param fourthdim enum="a-real or zr" "a-imag or zi" "b-real or zj" "b-imag or zk" default=0 hint=" axis that points into the fourth dimension. Cubic or Quaternion-Hypercomplex." endparam param fourthvalue caption="4-val-0.0" default=0.0 hint="value for the fourth axis." endparam param bailout caption="Bailout-4.0" default=4.0 hint="Breakvalue for iterations." min=0.0 endparam param touchscreen caption="Screen-touch" default=false hint="Those structures that goes out of the screen, or touches it, is colored with \ inside colouring." endparam param background enum="outside" "inside" default=1 hint="What type of background-coloring you want. With inside only one colour or inside \ coloring filter" endparam param lightx caption="Light-x-0.0" default=0.0 hint="x-coord of lightsource" endparam param lighty caption="Light-y-0.0" default=0.0 hint="y-coord of lightsource" endparam param lightz caption="Light-z-6.0" default=-6.0 hint="z-coord of lightsource" endparam ;llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll heading caption = "General Space Parameters" endheading param zscreen caption="zscreen-320.0" default=320.0 hint="Screendepth in virtual pixels." min=0 endparam param zorig caption="zorig-0.0" default=0.0 hint="Center of z-axis." endparam param zdist caption="zdist-4.0" default=4.0 hint="Length of z-axis." endparam param zmagn caption="z-magnify" default=false hint="If set then the fractal will be magnified in the third dimension too." endparam param autoscale caption="Auto scaling" default=false hint="If set then the screendepth in virtual pixels will be set to hold the same scalar \ proportions as the x-axis. Take it easy with this as you don´t have to \ magnify the screensurface very much to get a very long z-axis in pixels. If \ z-magnify is set too then there is no danger in overproportions." endparam param xrot caption="xrot-0.0" default=0.0 hint="Rotates the system through the x-axis." endparam param yrot caption="yrot-0.0" default=0.0 hint="Rotates the system through the y-axis." endparam param zrot caption="zrot-0.0" default=0.0 hint="Rotates the system through the z-axis." endparam param local caption="Local rotation" default=false hint="Sets local rotation. Otherwise location around zero." endparam ;llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll heading caption = "Common" endheading param view enum="3-dim" "2-dim-center" "2-dim-screen" default=0 hint="View-system. 3d or 2d from center or 2d from 'screentouch'." endparam param prec caption="Precision-10.0" default=10.0 min=1.0 hint="Precision for the fine tracing. The lower, the faster but with less precision. \ Smallest value allowed is 1.0" endparam } ;********************************************************************************* JuliaTSuite{ ; Switch1 is a 4 x Julia chaine - to start each of ; them (or all together)give first a valor to power real/imag. ; You can combine or use alone the other switches. ; More combinations could slow down the render time but ; with good results. ; Detail: ; Switch1...switch9 = formulas on-off ; all formulas are to one z out. ; TFuncDisplay1 on = functions to the formulas. ; TFuncdisplay2 on = functions inside an IF statement. ; aaparam....adparam = valors to switch1 , start first ; with power. ; TChoice = valors inside IF statements , 5 is direct to the formula. ; TValors = idem. ; Zetswitch = final out of all formulas in z. ; choice 0 = addition of all formulas. ; choice 1 = substraction of all formulas ; choice 2 = inverse of choice 1 ; choice 3 = inverse of choice 2 ; zsw1zet1....zsw9zet1 parameters to each formula. ; Andre Vandergoten ; avandergoten@skynet.be ; November 2003 init: z = #pixel complex a = 0 complex b = 0 complex c = 0 int iterations = 0 ; - Switch1 complex A1 = 0 complex zsw1 = 0 ; - Switch2 complex A2 = 0 complex zsw2 = 0 ; - Switch3 complex A3 = 0 complex zsw3 = 0 ; - Switch4 complex A4 = 0 complex zsw4 = 0 ; - Switch5 complex A5 = 0 complex zsw5 = 0 ; - Switch6 complex A6 = 0 complex zsw6 = 0 ; - Switch7 complex A7 = 0 complex zsw7 = 0 ; - Switch8 complex A8 = 0 complex zsw8 = 0 ; - Switch9 complex A9 = 0 complex zsw9 = 0 ;************************** loop: if(@switch1==true) if(@tfuncdisplay1==false) A1=(((z^@aapower)+@aaseed)+@aaparam)+(((z^@abpower)+@abseed)+@abparam)+\ (((z^@acpower)+@acseed)+@acparam)+(((z^@adpower)+@adseed)+@adparam)+@zsw1zet1 elseif(@tfuncdisplay1==true) A1=fn1((((z^@aapower)+@aaseed)+@aaparam)+(((z^@abpower)+@abseed)+@abparam)+\ (((z^@acpower)+@acseed)+@acparam)+(((z^@adpower)+@adseed)+@adparam))+@zsw1zet1 endif iterations = -1 if(@tfuncdisplay2==false) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw1 = abs(((z)-(b)+((z)-(a)/c)*abs(c))+A1) elseif(@tchoice==1) zsw1 = abs(((z)-(b)-(c)*((z)-(a)))+A1) elseif(@tchoice==2) zsw1 = abs(((z)+(b)-(a)*((z)-(c)))+A1) elseif(@tchoice==3) zsw1 = abs(((z)-(a)+((z)+(c)/b)*abs(b))+A1) elseif(@tchoice==4) zsw1 = abs((((z)+(a)+(b)+(c))/((z)-(a))+A1)) elseif(@tchoice==5) zsw1 = A1 endif elseif(@tfuncdisplay2==true) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw1 = fn2(abs(((z)-(b)+((z)-(a)/c)*abs(c))+A1)) elseif(@tchoice==1) zsw1 = fn2(abs(((z)-(b)-(c)*((z)-(a)))+A1)) elseif(@tchoice==2) zsw1 = fn2(abs(((z)+(b)-(a)*((z)-(c)))+A1)) elseif(@tchoice==3) zsw1 = fn2(abs(((z)-(a)+((z)+(c)/b)*abs(b))+A1)) elseif(@tchoice==4) zsw1 = fn2(abs((((z)+(a)+(b)+(c))/((z)-(a))+A1))) elseif(@tchoice==5) zsw1 = fn2(A1) endif endif elseif(@switch1==false) endif ;******************************************************************** if(@switch2==true) sw2z0=1/z complex sw2z00=0 complex sw2z1=0 sw2z1=#pi*(sw2z0) sw2z1=sw2z1*sin(sw2z1)^tan(sw2z1)+@zsw2zet1 sw2z00=fn1(sw2z1*sin(sw2z1)^tan(sw2z1))+@zsw2zet1 if(@tfuncdisplay1==false) A2=sw2z1 elseif(@tfuncdisplay1==true) A2=sw2z00 endif iterations = -1 if(@tfuncdisplay2==false) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw2 = abs(((z)-(b)+((z)-(a)/c)*abs(c))+A2) elseif(@tchoice==1) zsw2 = abs(((z)-(b)-(c)*((z)-(a)))+A2) elseif(@tchoice==2) zsw2 = abs(((z)+(b)-(a)*((z)-(c)))+A2) elseif(@tchoice==3) zsw2 = abs(((z)-(a)+((z)+(c)/b)*abs(b))+A2) elseif(@tchoice==4) zsw2 = abs((((z)+(a)+(b)+(c))/((z)-(a))+A2)) elseif(@tchoice==5) zsw2 = A2 endif elseif(@tfuncdisplay2==true) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw2 = fn2(abs(((z)-(b)+((z)-(a)/c)*abs(c))+A2)) elseif(@tchoice==1) zsw2 = fn2(abs(((z)-(b)-(c)*((z)-(a)))+A2)) elseif(@tchoice==2) zsw2 = fn2(abs(((z)+(b)-(a)*((z)-(c)))+A2)) elseif(@tchoice==3) zsw2 = fn2(abs(((z)-(a)+((z)+(c)/b)*abs(b))+A2)) elseif(@tchoice==4) zsw2 = fn2(abs((((z)+(a)+(b)+(c))/((z)-(a))+A2))) elseif(@tchoice==5) zsw2 = fn2(A2) endif endif elseif(@switch2==false) endif ;************************************************************************ if(@switch3==true) complex sw3z00=#pixel complex sw3z0=0 complex sw3z1=0 sw3z1=#pi*(z) complex sw3z2=0 sw3z2=(z*z+0.3+0.7*sw3z1)*sw3z00 sw3z0=fn1(sw3z2) ;z=sw3z2 if(@tfuncdisplay1==false) A3=sw3z2+@zsw3zet1 elseif(@tfuncdisplay1==true) A3=sw3z0+@zsw3zet1 endif iterations = -1 if(@tfuncdisplay2==false) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw3 = abs(((z)-(b)+((z)-(a)/c)*abs(c))+A3) elseif(@tchoice==1) zsw3 = abs(((z)-(b)-(c)*((z)-(a)))+A3) elseif(@tchoice==2) zsw3 = abs(((z)+(b)-(a)*((z)-(c)))+A3) elseif(@tchoice==3) zsw3 = abs(((z)-(a)+((z)+(c)/b)*abs(b))+A3) elseif(@tchoice==4) zsw3 = abs((((z)+(a)+(b)+(c))/((z)-(a))+A3)) elseif(@tchoice==5) zsw3 = A3 endif elseif(@tfuncdisplay2==true) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw3 = fn2(abs(((z)-(b)+((z)-(a)/c)*abs(c))+A3)) elseif(@tchoice==1) zsw3 = fn2(abs(((z)-(b)-(c)*((z)-(a)))+A3)) elseif(@tchoice==2) zsw3 = fn2(abs(((z)+(b)-(a)*((z)-(c)))+A3)) elseif(@tchoice==3) zsw3 = fn2(abs(((z)-(a)+((z)+(c)/b)*abs(b))+A3)) elseif(@tchoice==4) zsw3 = fn2(abs((((z)+(a)+(b)+(c))/((z)-(a))+A3))) elseif(@tchoice==5) zsw3 = fn2(A3) endif endif elseif(@switch3==false) endif ;******************************************************************* if(@switch4==true) complex sw4z1=0 sw4z1=#pixel if(@tfuncdisplay1==false) A4=sw4z1*sin(1/z)+@zsw4zet1 elseif(@tfuncdisplay1==true) A4=fn1(sw4z1*sin(1/z))+@zsw4zet1 endif iterations = -1 if(@tfuncdisplay2==false) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw4 = abs(((z)-(b)+((z)-(a)/c)*abs(c))+A4) elseif(@tchoice==1) zsw4 = abs(((z)-(b)-(c)*((z)-(a)))+A4) elseif(@tchoice==2) zsw4 = abs(((z)+(b)-(a)*((z)-(c)))+A4) elseif(@tchoice==3) zsw4 = abs(((z)-(a)+((z)+(c)/b)*abs(b))+A4) elseif(@tchoice==4) zsw4 = abs((((z)+(a)+(b)+(c))/((z)-(a))+A4)) elseif(@tchoice==5) zsw4 = A4 endif elseif(@tfuncdisplay2==true) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw4 = fn2(abs(((z)-(b)+((z)-(a)/c)*abs(c))+A4)) elseif(@tchoice==1) zsw4 = fn2(abs(((z)-(b)-(c)*((z)-(a)))+A4)) elseif(@tchoice==2) zsw4 = fn2(abs(((z)+(b)-(a)*((z)-(c)))+A4)) elseif(@tchoice==3) zsw4 = fn2(abs(((z)-(a)+((z)+(c)/b)*abs(b))+A4)) elseif(@tchoice==4) zsw4 = fn2(abs((((z)+(a)+(b)+(c))/((z)-(a))+A4))) elseif(@tchoice==5) zsw4 = fn2(A4) endif endif elseif(@switch4==false) endif ;******************************************************************* if(@switch5==true) complex sw5z1=0 complex sw5z2=0 sw5z1=real(z)+flip(real(1/z)) sw5z2=flip(imag(z))+imag(1/z) if(@tfuncdisplay1==false) A5=(sw5z1^2)*sw5z2+@zsw5zet1 elseif(@tfuncdisplay1==true) A5=fn1((sw5z1^2)*sw5z2)+@zsw5zet1 endif iterations = -1 if(@tfuncdisplay2==false) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw5 = abs(((z)-(b)+((z)-(a)/c)*abs(c))+A5) elseif(@tchoice==1) zsw5 = abs(((z)-(b)-(c)*((z)-(a)))+A5) elseif(@tchoice==2) zsw5 = abs(((z)+(b)-(a)*((z)-(c)))+A5) elseif(@tchoice==3) zsw5 = abs(((z)-(a)+((z)+(c)/b)*abs(b))+A5) elseif(@tchoice==4) zsw5 = abs((((z)+(a)+(b)+(c))/((z)-(a))+A5)) elseif(@tchoice==5) zsw5 = A5 endif elseif(@tfuncdisplay2==true) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw5 = fn2(abs(((z)-(b)+((z)-(a)/c)*abs(c))+A5)) elseif(@tchoice==1) zsw5 = fn2(abs(((z)-(b)-(c)*((z)-(a)))+A5)) elseif(@tchoice==2) zsw5 = fn2(abs(((z)+(b)-(a)*((z)-(c)))+A5)) elseif(@tchoice==3) zsw5 = fn2(abs(((z)-(a)+((z)+(c)/b)*abs(b))+A5)) elseif(@tchoice==4) zsw5 = fn2(abs((((z)+(a)+(b)+(c))/((z)-(a))+A5))) elseif(@tchoice==5) zsw5 = fn2(A5) endif endif elseif(@switch5==false) endif ;**************************************************************** if(@switch6==true) complex sw6 = 0 sw6=z*#pixel-#pixel/(z*z+#pixel) if(@tfuncdisplay1==false) A6=sw6+@zsw6zet1 elseif(@tfuncdisplay1==true) A6=fn1(sw6)+@zsw6zet1 endif iterations = -1 if(@tfuncdisplay2==false) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw6 = abs(((z)-(b)+((z)-(a)/c)*abs(c))+A6) elseif(@tchoice==1) zsw6 = abs(((z)-(b)-(c)*((z)-(a)))+A6) elseif(@tchoice==2) zsw6 = abs(((z)+(b)-(a)*((z)-(c)))+A6) elseif(@tchoice==3) zsw6 = abs(((z)-(a)+((z)+(c)/b)*abs(b))+A6) elseif(@tchoice==4) zsw6 = abs((((z)+(a)+(b)+(c))/((z)-(a))+A6)) elseif(@tchoice==5) zsw6 = A6 endif elseif(@tfuncdisplay2==true) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw6 = fn2(abs(((z)-(b)+((z)-(a)/c)*abs(c))+A6)) elseif(@tchoice==1) zsw6 = fn2(abs(((z)-(b)-(c)*((z)-(a)))+A6)) elseif(@tchoice==2) zsw6 = fn2(abs(((z)+(b)-(a)*((z)-(c)))+A6)) elseif(@tchoice==3) zsw6 = fn2(abs(((z)-(a)+((z)+(c)/b)*abs(b))+A6)) elseif(@tchoice==4) zsw6 = fn2(abs((((z)+(a)+(b)+(c))/((z)-(a))+A6))) elseif(@tchoice==5) zsw6 = fn2(A6) endif endif elseif(@switch6==false) endif ;********************************************************************** if(@switch7==true) complex sw7=0 sw7=(z/3)*(z+tan(#pixel)) if(@tfuncdisplay1==false) A7=sw7+@zsw7zet1 elseif(@tfuncdisplay1==true) A7=fn1(sw7)+@zsw7zet1 endif iterations = -1 if(@tfuncdisplay2==false) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw7 = abs(((z)-(b)+((z)-(a)/c)*abs(c))+A7) elseif(@tchoice==1) zsw7 = abs(((z)-(b)-(c)*((z)-(a)))+A7) elseif(@tchoice==2) zsw7 = abs(((z)+(b)-(a)*((z)-(c)))+A7) elseif(@tchoice==3) zsw7 = abs(((z)-(a)+((z)+(c)/b)*abs(b))+A7) elseif(@tchoice==4) zsw7 = abs((((z)+(a)+(b)+(c))/((z)-(a))+A7)) elseif(@tchoice==5) zsw7 = A7 endif elseif(@tfuncdisplay2==true) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw7 = fn2(abs(((z)-(b)+((z)-(a)/c)*abs(c))+A7)) elseif(@tchoice==1) zsw7 = fn2(abs(((z)-(b)-(c)*((z)-(a)))+A7)) elseif(@tchoice==2) zsw7 = fn2(abs(((z)+(b)-(a)*((z)-(c)))+A7)) elseif(@tchoice==3) zsw7 = fn2(abs(((z)-(a)+((z)+(c)/b)*abs(b))+A7)) elseif(@tchoice==4) zsw7 = fn2(abs((((z)+(a)+(b)+(c))/((z)-(a))+A7))) elseif(@tchoice==5) zsw7 = fn2(A7) endif endif elseif(@switch7==false) endif ;******************************************************************** if(@switch8==true) complex sw8=0 sw8=z-(z*(z/3)*(z/2)-tan(#pixel)) if(@tfuncdisplay1==false) A8=sw8+@zsw8zet1 elseif(@tfuncdisplay1==true) A8=fn1(sw8)+@zsw8zet1 endif iterations = -1 if(@tfuncdisplay2==false) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw8 = abs(((z)-(b)+((z)-(a)/c)*abs(c))+cabs(A8)) elseif(@tchoice==1) zsw8 = abs(((z)-(b)-(c)*((z)-(a)))+A8) elseif(@tchoice==2) zsw8 = abs(((z)+(b)-(a)*((z)-(c)))+A8) elseif(@tchoice==3) zsw8 = abs(((z)-(a)+((z)+(c)/b)*abs(b))+A8) elseif(@tchoice==4) zsw8 = abs((((z)+(a)+(b)+(c))/((z)-(a))+A8)) elseif(@tchoice==5) zsw8 = A8 endif elseif(@tfuncdisplay2==true) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw8 = fn2(abs(((z)-(b)+((z)-(a)/c)*abs(c))+A8)) elseif(@tchoice==1) zsw8 = fn2(abs(((z)-(b)-(c)*((z)-(a)))+A8)) elseif(@tchoice==2) zsw8 = fn2(abs(((z)+(b)-(a)*((z)-(c)))+A8)) elseif(@tchoice==3) zsw8 = fn2(abs(((z)-(a)+((z)+(c)/b)*abs(b))+A8)) elseif(@tchoice==4) zsw8 = fn2(abs((((z)+(a)+(b)+(c))/((z)-(a))+A8))) elseif(@tchoice==5) zsw8 = fn2(A8) endif endif elseif(@switch8==false) endif ;******************************************************************** if(@switch9==true) complex sw9=0 sw9=(z*z*(sin(z)))^tan(z)+#pixel if(@tfuncdisplay1==false) A9=sw9+@zsw9zet1 elseif(@tfuncdisplay1==true) A9=fn1(sw9)+@zsw9zet1 endif iterations = -1 if(@tfuncdisplay2==false) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw9 = abs(((z)-(b)+((z)-(a)/c)*abs(c))+A9) elseif(@tchoice==1) zsw9 = abs(((z)-(b)-(c)*((z)-(a)))+A9) elseif(@tchoice==2) zsw9 = abs(((z)+(b)-(a)*((z)-(c)))+A9) elseif(@tchoice==3) zsw9 = abs(((z)-(a)+((z)+(c)/b)*abs(b))+A9) elseif(@tchoice==4) zsw9 = abs((((z)+(a)+(b)+(c))/((z)-(a))+A9)) elseif(@tchoice==5) zsw9 = A9 endif elseif(@tfuncdisplay2==true) iterations = iterations + 1 a = iterations-(#pi*2/@tvalor1) b = @tvalor2*tan(@tvalor3*a) c = @tvalor2*@tvalor3/sqr(cos(@tvalor3*a)) if(@tchoice==0) zsw9 = fn2(abs(((z)-(b)+((z)-(a)/c)*abs(c))+A9)) elseif(@tchoice==1) zsw9 = fn2(abs(((z)-(b)-(c)*((z)-(a)))+A9)) elseif(@tchoice==2) zsw9 = fn2(abs(((z)+(b)-(a)*((z)-(c)))+A9)) elseif(@tchoice==3) zsw9 = fn2(abs(((z)-(a)+((z)+(c)/b)*abs(b))+A9)) elseif(@tchoice==4) zsw9 = fn2(abs((((z)+(a)+(b)+(c))/((z)-(a))+A9))) elseif(@tchoice==5) zsw9 = fn2(A9) endif endif elseif(@switch9==false) endif if(@zetswitch==0) z = zsw1+zsw2+zsw3+zsw4+zsw5+zsw6+zsw7+zsw8+zsw9 elseif(@zetswitch==1) z = zsw1-zsw2-zsw3-zsw4-zsw5-zsw6-zsw7-zsw8-zsw9 elseif(@zetswitch==2) z = 1/(zsw1+zsw2+zsw3+zsw4+zsw5+zsw6+zsw7+zsw8+zsw9) elseif(@zetswitch==3) z = 1/(zsw1-zsw2-zsw3-zsw4-zsw5-zsw6-zsw7-zsw8-zsw9) endif ;******************************* bailout: |z| < @bailout default: title = "JuliaTSuite" angle = 90 Method = Onepass param bailout caption = "Bailout" default = 1.0 endparam ;****************** heading caption = "A" endheading param aapower caption = "aapower" default = (2.0,0) endparam param aaseed caption = "aaseed" default = (-1.25,0) endparam param aaparam caption = "aaparam" default = (0,0) endparam ;************************* heading caption = "AB" endheading param abpower caption = "abpower" default = (0,0) endparam param abseed caption = "abseed" default = (0,0) endparam param abparam caption = "abparam" default = (0,0) endparam ;************************* heading caption = "AC" endheading param acpower caption = "acpower" default = (0,0) endparam param acseed caption = "acseed" default = (0,0) endparam param acparam caption = "acparam" default = (0,0) endparam ;******************** heading caption = "AD" endheading param adpower caption = "adpower" default = (0,0) endparam param adseed caption = "adseed" default = (0,0) endparam param adparam caption = "adparam" default = (0,0) endparam ;******************** heading caption = "S" endheading param switch1 caption = "Switch1" default = true endparam param switch2 caption = "Switch2" default = false endparam param switch3 caption = "Switch3" default = false endparam param switch4 caption = "Switch4" default = false endparam param switch5 caption = "Switch5" default = false endparam param switch6 caption = "Switch6" default = false endparam param switch7 caption = "Switch7" default = false endparam param switch8 caption = "Switch8" default = false endparam param switch9 caption = "Switch9" default = false endparam ;********************* heading caption = "T" endheading param tvalor1 caption = "TValor1" default = 100.0 endparam param tvalor2 caption = "TValor2" default = 1.0 endparam param tvalor3 caption = "TValor3" default = 1.0 endparam param tchoice caption = "TChoice" default = 0 enum = "0" "1" "2" "3" "4" "5" endparam param tfuncdisplay1 caption = "TFuncDisplay1" default = false endparam param tfuncdisplay2 caption = "TFuncDisplay2" default = false endparam ;************************** heading caption = "Z" endheading param zsw1zet1 caption = "zsw1zet1" default = 0.0 endparam param zsw2zet1 caption = "zsw2zet1" default = 0.0 endparam param zsw3zet1 caption = "zsw3zet1" default = 0.0 endparam param zsw4zet1 caption = "zsw4zet1" default = 0.0 endparam param zsw5zet1 caption = "zsw5zet1" default = 0.0 endparam param zsw6zet1 caption = "zsw6zet1" default = 0.0 endparam param zsw7zet1 caption = "zsw7zet1" default = 0.0 endparam param zsw8zet1 caption = "zsw8zet1" default = 0.0 endparam param zsw9zet1 caption = "zsw9zet1" default = 0.0 endparam param zetswitch caption = "zetswitch" default = 0 enum = "0" "1" "2" "3" endparam } ;********************************************************