FractalPark
燃烧船入门

燃烧船

一种二次逃逸时间分形:平方前先折叠实部和虚部,色带便显出不对称的船形轮廓。

在探索器中打开
FractalPark 渲染的燃烧船标准视图:主船体剪影与火焰色逃逸带
FractalPark 渲染的燃烧船:楔形船体上方是火焰状山脊,外围为分层的逃逸时间着色。

概览

燃烧船离曼德布罗特集很近,只改了一步:每次平方前,z 的实部和虚部分别取绝对值。轨道折回坐标轴,二次映射的旋转对称性也随之断开。它不再是解析函数(不满足柯西–黎曼方程),边界便长出锐利折角。

按常用显示方向看——实轴水平、虚轴上下颠倒——折叠像一艘燃烧的船:楔形船体上冒出火焰状山脊。沿实轴往左,越来越小的副本排开,每一艘都带着同样的锯齿轮廓。

它虽是非解析映射,常用逃逸半径检测仍有效:|z| 超过 2 后必然发散。不过轨道已不按复解析函数的规律行进。标示逃逸快慢的色带不再平滑向外铺开,而是叠成硬边条带和嵌套矩形。

数学原理

绝对值二次迭代

z(n+1) = (absolute real z(n) + i times absolute imaginary z(n))^2 + c

先将实部和虚部分别取绝对值(反射到非负),组合成复数后再平方。展开之后,实部为 xₙ₊₁ = xₙ² − yₙ² + Re(c),虚部为 yₙ₊₁ = 2|xₙ||yₙ| + Im(c)。每一步,绝对值都把轨道折回坐标轴:xₙ 或 yₙ 若为负,先镜像为正再参与平方。燃烧船和曼德布罗特集的根本不同就在这个折叠——锐利矩形边界取代了光滑轮廓。

试试 c = −1。对曼德布罗特集,轨道 z₀=0, z₁=−1, z₂=0, z₃=−1, … 保持有界(周期 2)。对燃烧船,z₁ = (|0| + i|0|)² − 1 = −1,z₂ = (|−1| + i|0|)² − 1 = 0,轨道同样进入二周期。再看 c = i 这样的点:折叠会改变轨道的方向,产生与曼德布罗特不同的逃逸判断。

历史

1992 年,Michael Michelitsch 与 Otto E. Rössler 在《Computers & Graphics》论文中首次描述并渲染燃烧船分形。两人当时均在德国图宾根大学(Eberhard Karls Universität Tübingen)工作。论文展示了迭代过程,并将绝对值折叠产生的集合称为"准 Julia 集"——外形类似经典 Julia 集,却来源于非解析映射。

"燃烧船"这一名称来自靠近实轴区域的局部放大:深色船体上方升起火焰状山脊。1993 年 10 月,Paul Bourke 独立实现了该分形,并在页面中注明引用 Michelitsch 与 Rössler。Bourke 的网页成为该分形最早的在线参考资料之一。

由于公式是曼德布罗特递推的非解析修改,它不落在 Fatou 与 Julia 建立的经典复动力系统理论框架内。此后它成为非解析逃逸时间分形中探索得最广的一种。Buffalo、Airship、Celtic 和 Perpendicular 等变体则重新排列了折叠的位置与顺序。

视觉特征

深色船体上立着火焰状桅杆和烟囱,周围围着折叠出的层状色带。放在曼德布罗特集旁边看,不对称一眼可见。

再创作与示例

从 canonical Document 开始

打开本指南使用的同一份已审定公式状态,再在交互式探索器中调整视图、着色、变换或动画。

常见问题

它与曼德布罗特集有什么区别?

逐分量取绝对值打破了曼德布罗特集的旋转对称性,也让映射不再解析。光滑圆润的边界变成锐利折角和嵌套矩形。逃逸时间颜色层也随之成带,不再是平滑的辐射渐变。

为什么船体有时看起来是倒置的?

标准公式产生的图像实际上是上下颠倒的,因为绝对值在平方前将负的虚坐标翻转为正。包括 FractalPark 在内的大多数渲染器显示时会做垂直翻转。若屏幕 Y 轴朝下,可能再翻一次;具体方向取决于渲染器内部是否做了反射处理。

参考资料