勾股树:一棵长在直角上的树
想象一棵树:一根树干竖直向上,从它的顶端长出两根枝;每根枝的顶端又各长出两根更小的枝……如此反复,永不停止。把每个"分叉点"都看作上一个规则的忠实重演,你便得到了一种分形——它被叫做"勾股树"(Pythagoras Tree),因为它的骨架里,住着毕达哥拉斯定理。
这棵树的分叉规则极简:每一段枝的顶端,向左右各偏一个固定的角度 θ,分出两枝;而新枝的长度,是旧枝长度乘以 cos θ。注意 cos θ 永远小于 1(除非 θ=0°),所以越往上,枝越短,树终能收在一小片区域里。
当 θ=45° 时,魔法发生了。两枝相对竖直方向各偏 45°,于是它们彼此恰好成 90° 的直角;又因为长度都等于旧枝的 cos45°=1/√2,两条直角边等长——这正是"等腰直角三角形"。想象在每一段旧枝上,以它自己为斜边立一个正方形;那个正方形两条直角边的方向,正是它顶端分出的两枝。于是正方形的面积 c²,恰好等于两枝各自长度平方之和 a²+b²——勾股定理在此被一棵树反复言说。铺满正方形后,它长成经典的"毕达哥拉斯树";而你在这篇文章顶部看到的青色线条,正是这棵树的"骨架"。
勾股树是自相似的:任意一小段枝,连同从它长出的整片子树,放大之后都和整棵树一模一样。分形几何正是靠这种"局部是整体的缩小版"来认识世界的。
树的规模增长得很快:第 1 层只有 1 段树干;每加深一层,段数翻倍。到第 8 层已有 2⁸−1=255 段,到第 12 层则有 2¹²−1=4095 段,密密麻麻,却依然规整——只因为每一次分叉都精确地重复同一条规则。
角度 θ 掌管着树的"性格":θ 越小,cos θ 越接近 1,枝长得越慢、树越窄越高,θ 接近 0° 时几乎退化成一条竖线;θ 越大,分叉越开、树越矮越宽,θ 接近 90° 时 cos θ 趋近 0,新枝几乎不再生长。45° 是那个最优雅的平衡点——两枝恰好成直角,毕氏定理在每一处分叉安静地成立。
在本应用中,青色线条画出勾股树的骨架。拖动文章顶部的"生长深度"滑杆(从 1 到 12),看树如何逐层长出更多细枝;拖动"分叉角度"滑杆(从 0° 到 90°),看同样的规则如何长出瘦高、舒展或矮宽的树冠。
现在,把角度拨到 45°、深度慢慢拉大,看青色细枝如何一分为二、再一分为二,把整个画布织成一棵对称的树——递归不过寥寥几行,却能在一处直角上,长出一整片森林。
评论 0
评论加载中…