我觉得这似乎是一个很难的问题。我正在(或至少将要)写一篇分形几何学的论文,将以电子方式提交。出于显而易见的原因,我希望在其中加入曼德布洛特分形的插图。
对于分形的“简单”图像,有一些答案,但我希望有一种方法可以让这个图像动画放大(理论上无限放大)——有点像这样
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 上的预览)