曼德勃罗集是最著名的分形图案——一个由简单数学公式 z = z² + c 生成的无限复杂的集合。这个交互式版本让你用鼠标自由探索这个数学奇观。
放大到足够深处,你会发现整个曼德勃罗集的微缩副本隐藏在边界中——这种自相似性是分形的核心特征。
缩放: 1x 位置: (-0.5, 0) 迭代: 100
鼠标滚轮缩放 · 拖拽平移 · 点击探索无限细节
如何探索
- 鼠标滚轮:缩放(以鼠标位置为中心)
- 拖拽:平移视图
- 增加精度:在深层缩放时提高迭代次数
- 换色:切换四种配色方案
数学原理
曼德勃罗集的定义极其简单:
对于复平面上的每个点 c:
从 z = 0 开始
重复:z = z² + c
如果 |z| 永远不超过 2,则 c 属于曼德勃罗集
function mandelbrot(cx: number, cy: number, maxIter: number): number {
let x = 0, y = 0;
let iteration = 0;
while (x * x + y * y <= 4 && iteration < maxIter) {
const xNew = x * x - y * y + cx;
y = 2 * x * y + cy;
x = xNew;
iteration++;
}
return iteration;
}
深度探索
当你缩放到边界区域时,会看到令人惊叹的细节:
- 螺旋结构:无限嵌套的螺旋
- 迷你曼德勃罗集:整个集合的微缩副本
- 闪电状结构:复杂的分支图案
- 海马谷:著名的 seahorse valley 区域
技术细节
- 纯 Canvas 2D 像素级渲染
- 支持实时缩放和平移
- 自动调整迭代次数以适应缩放深度
- 四种专业配色方案
- 响应式设计