动画曼德布洛

动画曼德布洛

我觉得这似乎是一个很难的问题。我正在(或至少将要)写一篇分形几何学的论文,将以电子方式提交。出于显而易见的原因,我希望在其中加入曼德布洛特分形的插图。

对于分形的“简单”图像,有一些答案,但我希望有一种方法可以让这个图像动画放大(理论上无限放大)——有点像这样

https://www.youtube.com/watch?v=zXTpASSd9xE

但不够详细。有人知道怎么做吗?

我的序言目前是空的,所以如果能提供完整的必要软件包列表就更好了。提前谢谢您。

答案1

如果你真的想烧掉你的雷达/评论者的 CPU,那么你可以这样做:

\documentclass[tikz]{standalone}

\def\pspreparation#1#2#3{
    20 div exch 20 div % y x
    #3 div exch #3 div % x y
    #2 add exch #1 add 2 copy true % y x y x true
}
\def\psiteration{ % y x Y X in?
    {dup dup mul 2 index dup mul sub 3 index sub 3 1 roll 2 mul mul 3 index sub exch 2 copy dup mul exch dup mul add 3 le}{false}ifelse
}
\def\psdecoration{
    5 1 roll pop pop pop pop % in?
    {0 0 0}{1 1 1}ifelse % R G B
}
\def\pgfdeclaremandelbrot#1#2#3{
    \pgfdeclarefunctionalshading{Mandelbrot(#1,#2,#3)}{\pgfpoint{-25bp}{-25bp}}{\pgfpoint{25bp}{25bp}}{}{
        \pspreparation{#1}{#2}{#3}
        \psiteration\psiteration\psiteration\psiteration\psiteration\psiteration\psiteration\psiteration
        \psiteration\psiteration\psiteration\psiteration\psiteration\psiteration\psiteration\psiteration
        \psdecoration
    }
}
\def\pgfprintmandelbrot#1#2#3{
    \pgfdeclaremandelbrot{#1}{#2}{#3}
    \tikz\path[shading={Mandelbrot(#1,#2,#3)}](-10,-10)rectangle(10,10);
}

\begin{document}
    % x-shift, y-shift, scale
    \pgfprintmandelbrot{ .6}{ 0}{1}
    \pgfprintmandelbrot{ .4}{ 0}{1.2}
    \pgfprintmandelbrot{ .2}{ 0}{1.44}
    \pgfprintmandelbrot{ .0}{ 0}{1.728}
    \pgfprintmandelbrot{-.2}{ 0}{2.0736}
    \pgfprintmandelbrot{-.4}{ 0}{2.48832}
    \pgfprintmandelbrot{-.4}{.1}{2.985984}
    \pgfprintmandelbrot{-.4}{.2}{3.5831808}
    \pgfprintmandelbrot{-.4}{.3}{4.29981696}
    \pgfprintmandelbrot{-.4}{.4}{5.159780352}
\end{document}

GIF 版本:(由于ImageMagick 无法转换包含功能性阴影的 PDF 文件,否则会出现故障)

修复 GIF 版本(使用 Mac 上的预览)

相关内容