Py学习  »  Python

不用Python/Mathematica!LaTeX这个包搞定所有经典分形绘图

LaTeX工作室 • 2 月前 • 200 次点击  

点击👇LaTeX工作室” 关注公众号

精致科研生活从这里开始



theme: custom-1770525044534-1q8pqwbp7 themeName: "css-blue" title: "分形宏包"


今天我们要介绍的主角——pst-fractal,就是那个能让你用代码“编织”出复杂分形图案的 LaTeX 宝藏宏包!

什么是 pst-fractal?

pst-fractal 是由 Herbert Voß 开发、基于 PSTricks 的 LaTeX 专业分形绘图宏包,当前最新版本 v0.13(文档更新至 2026 年 6 月),原生集成在 TeX Live、MikTeX 发行版,遵循 LPPL 开源协议,专为数学、物理、计算机论文绘制高精度分形图像而生。

不同于 Tikz 有限的分形支持,pst-fractal 依托 PostScript 底层渲染,覆盖 近 20 大类经典分形、自然分形、斐波那契衍生分形、混沌吸引子,支持自定义迭代深度、色彩、尺寸、旋转角度,甚至原生支持分形动态动画;唯一门槛是编译需使用 xelatex/latex+dvips,不支持纯 pdflatex。

文档配套近百份可直接运行的 .tex 示例代码,无外部图片依赖即可输出矢量高清图;唯一缺点是高迭代次数文件体积偏大,官方推荐搭配 hvextern 导出外部 PNG/PDF 压缩文件,降低源文件大小。

二、支持绘制的全部分形类型(覆盖数学、自然、混沌三大领域)

(一)经典基础分形

  1. 康托尔集 Cantor set(\psCantor) 一维自相似分形,默认沿 y 轴负方向绘制,可自定义线宽、颜色、迭代层数 n、横向宽度 xWidth、纵向间距 yWidth,适合集合论、实分析配图。 基础示例代码:



    
\usepackage[dvipsnames,svgnames]{pstricks}
\usepackage{pst-fractal}
\begin{pspicture}(10,-2)
\psCantor[linewidth=3mm,linecolor=red,n=7,xWidth=11,yWidth=4mm]
\end{pspicture}
  1. 谢尔宾斯基系列(\psSier / \psSierCarpet) 分为三角形、空间填充曲线、地毯三类:
  • 三角形:三点坐标定义基底,支持调整采样点数 plotpoints
  • 谢尔宾斯基曲线:空间填充曲线,可控制迭代 n、采样点 N,制作逐点生长动画;
  • 谢尔宾斯基地毯:二维分形方块,支持缩放 scale、基底颜色 baseColor。
  1. 科赫雪花 Koch flake(\psKochflake) 经典雪花分形,可修改缩放 scale、迭代深度 maxIter、初始旋转角度 angle,批量生成不同阶数雪花对比图。

  2. 阿波罗尼奥斯圆 Apollonius circles(\psAppolonius) 相切圆分形,支持自定义半径 Radius、彩色填充 Color,适合几何复分析配图。

(二)复动力系统分形(朱利亚/曼德博集合)

核心命令 \psfractal,是复分析论文标配,迭代公式:

  • Mandelbrot 曼德博集:固定 ,C 随坐标变化,type=Mandel 开启;
  • Julia 朱利亚集:固定常数 C(cx, cy), 取画布坐标;

核心可调参数:

  • baseColor:收敛区域底色;
  • dIter/maxIter:迭代步长、最大迭代次数,控制色彩分层;
  • maxRadius:逃逸判定阈值(推荐设置为距离平方);
  • xWidth/yWidth:矢量图物理尺寸,适配论文版面。

(三)自然仿生分形(植物形态)

  1. 叶序螺旋 Phyllotaxis(\psPhyllotaxis) 复刻向日葵、松果螺旋,遵循斐波那契数螺旋规律;可调螺旋角 angle、单元尺寸 c、迭代总数 maxIter,中心坐标自由偏移。
  2. 巴恩斯利蕨 Fern(\psFern) 分形蕨类,自定义缩放 scale、迭代数量、叶片绿色调,一键生成写实蕨类矢量图。
  3. 分形树 \psPTree / \psFArrow 非平衡二叉分形树,可调基底宽度 xWidth、最小枝宽 minWidth、不平衡系数 c;开启 Color 参数可生成渐变彩色树木,适配生物、几何可视化。

(四)完整斐波那契分形家族(7 套专用命令)

该模块由 Manuel Luque、José L. Ramírez 等学者开发,覆盖各类斐波那契词分形,是离散数学、符号动力学专用工具:

  1. \psFibonacciWord:输出指定阶斐波那契字符序列 
  2. \psFibonacci:绘制斐波那契词分形曲线,支持 juxtaposition 拼接前后阶曲线对比;
  3. \psNewFibonacci:稠密斐波那契词 DFW 衍生曲线,自定义替换规则 morphism;
  4. \psiFibonacci:i 参数广义斐波那契分形;
  5. \pskFibonacci:k 阶斐波那契曲线;
  6. \psBiperiodicFibonacci:双参数周期斐波那契分形;
  7. \psFibonacciPolyominoes:斐波那契多米诺瓷砖,可平面密铺绘图。

(五)空间填充曲线、混沌吸引子

  1. 希尔伯特曲线 Hilbert(\psHilbert 四阶空间填充曲线,支持逐点绘制、填充上色、动态生长动画,常用于图像处理、网格划分配图。

  2. 埃农吸引子 Henon Attractor(\psHenon 经典二维混沌系统,支持黑白/彩色像素渲染,可添加标注、轨道箭头,非线性动力学论文专用。

三、核心通用参数与动画能力

1. 全局通用可调参数

  • 图形尺寸:unit、xWidth、yWidth、scale;
  • 样式:linewidth、linecolor、fillcolor、fillstyle;
  • 迭代控制:n(基础迭代层数)、maxIter(最大迭代)、dIter(色彩步长);
  • 色彩:baseColor、Color(渐变开关)、dotcolor(散点颜色);
  • 采样:plotpoints、N(仅绘制前 N 个点,用于动画)。

2. 原生动画支持

包深度兼容 animateinline 宏包,可快速制作分形生长动画:

  • 谢尔宾斯基曲线逐点生成;
  • 希尔伯特曲线迭代生长;
  • 埃农吸引子轨道演化; 仅需 \multiframe 循环修改 N(采样点数),导出矢量动画 PDF,无需第三方绘图软件。

四、使用入门:最简编译模板

基础文档框架




    
\documentclass{article}
\usepackage[dvipsnames,svgnames]{pstricks}
\usepackage{pst-fractal} % 加载分形包
\usepackage{multido} % 批量绘图/动画依赖
\begin{document}
% 绘制曼德博集合示例
\begin{pspicture}(-2,-1.2)(1,1.2)
\psfractal[type=Mandel,xWidth=6cm,yWidth=4.8cm,baseColor=white,dIter=10]
\end{pspicture}
\end{document}

编译指令

必须使用支持 PostScript 的编译器:

xelatex 文件名.tex

高迭代大图建议启用 hvextern 分离外部图像,减小 PDF 体积。

pst-fractal 作为 PSTricks 生态重量级拓展包,官方文档长达 63 页,附带 80+份完整示例代码(fractal-01~fractal-93),覆盖所有命令与参数组合;若追求轻量化编译,可降低 maxIter、n 等迭代参数,平衡渲染速度与图像精细度。

地址:https://www.ctan.org/pkg/pst-fractal



更懂中文用户的 LaTeX 在线平台来了,点击领取福利!

www.texhub.com

点击👇LaTeX工作室” 关注公众号



图片

● LaTeX 重制最牛最难《中学数学实验教材》共 6 册-免费下载 - 增加百度网盘

● 2026 最新国家自然科学基金项目 LaTeX 模版,科研党的福音来了!

● MathLive —— 轻松编辑数学公式的宝藏神器!即时渲染、支持 LaTeX 输入,完美公式编辑体验!

●  LaTeX 公式排版超级备忘录 - 各类场景全覆盖

● 高中物理甲种本第一册重制豪华版来了(附全套教材下载)

● LaTeX 重排 838页 《数学分析新讲·三册》




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/198075