探索毕达哥拉斯树
一个简单公式,如何创造出无穷无尽的分形世界?
一棵树,为什么可以由一个正方形长出来?
第一次看到毕达哥拉斯树的人,通常都会觉得有些不可思议。
它没有树干模型,没有树叶模型,也没有任何真实植物的数据。最开始,它甚至只有一个简单的正方形。
然而,随着相同的规则不断重复,一个越来越复杂、越来越像树木的图案便逐渐出现
复杂的树木,并不一定需要复杂的绘制方法,有时候,只需要不断重复一个简单的过程。
这就是毕达哥拉斯树——分形几何中最经典、也最容易理解的递归图形之一。
它是如何"长大"的?
毕达哥拉斯树的起点非常简单:从一个正方形开始,在它的顶部,再生成两个较小的正方形,然后,每个新的正方形继续重复同样的步骤。
两个变四个,四个变八个。八个继续分裂……
随着层数不断增加,一棵越来越丰富的树便慢慢形成。每一层都遵循完全相同的规则,唯一发生变化的,只是位置、方向和大小。
每一根树枝,都来自上一根树枝
仔细观察,你会发现:每一根树枝,都像是一棵更小的树,而整棵树,又由无数这样的分支组成。这种局部与整体相似的特征,也是分形最经典的特点之一。
自然界中的很多复杂形态,都可以看到递归与分形的影子:树枝不断分叉,血管不断分支,河流不断汇聚。放大以后,局部依然保留着与整体相似的分支结构。


完整的一棵树
放大的树枝
放大以后,局部依然保留着与整体相似的分支结构。
为什么它叫"毕达哥拉斯树"?
虽然它看起来像一棵树,但它的名字其实来自著名的毕达哥拉斯定理。
生成每一层分支时,新的正方形会按照直角三角形的几何关系排列,因此整个图形始终保持严谨的数学结构。不过,对大多数人来说,并不需要理解这些几何推导。更重要的是观察:一个简单的规则,是如何一步步演化成一棵树的。
试试看不同的树
改变几个简单的参数,整棵树就会拥有完全不同的风格:有些更加高大挺拔,有些枝叶舒展,有些像冬天的枯树,有些则像茂密的森林。
即使生成规则保持不变,仅仅调整角度或层数,也能创造出丰富多样的形态。
你可以点击"下一个"按钮,看看预先设置好的各种树,也可以试试调整图像下方的调整参数按钮,自己生成不同风格的树。
数学,也可以画出树木
毕达哥拉斯树不仅是一幅漂亮的图案,它还是计算机图形学中著名的递归示例。
程序只需要描述:"如何生成下一层。",而不用一根一根画出所有树枝。
这种思想后来被广泛应用于程序生成、自然场景模拟以及计算机图形学中。复杂的森林,丰富的树冠,甚至游戏中的自然环境,很多时候,都建立在类似的思想之上。
什么是递归?
毕达哥拉斯树最重要的思想,就是递归。
递归可以简单理解为:让一个过程不断重复自己。
就像照镜子,镜子里的自己又照着另一面镜子,不断重复。又或者像树枝,一根树枝长出两根新的树枝,新的树枝又继续长出更小的树枝。虽然每一次变化都很简单,但不断重复之后,就能形成复杂而丰富的结构。
毕达哥拉斯树正是这种思想最经典的可视化例子之一。
一个跨越百年的经典图形
毕达哥拉斯树最早由荷兰数学教师 艾伯特·恩斯特·博斯曼 在 20 世纪中期提出,并因其几何构造与毕达哥拉斯定理密切相关而得名。几十年来,它一直是数学教育、递归算法和分形几何中的经典示例。
直到今天,它依然帮助人们理解一个重要的思想:复杂,并不一定来自复杂的规则,有时候,只需要把一个简单的过程重复很多次。
继续探索分形世界
如果你想看看另一种数学驱动的树形结构,可以继续探索 斐波那契树。它不依靠几何复制,而是利用斐波那契数列中的比例关系,创造出具有自然感的生长形态。
如果你喜欢观察自然生长的过程,不妨继续探索 巴恩斯利蕨;如果你想体验无限变化带来的惊喜,可以试试 朱利亚集合;而 曼德博集合 则展示了整个分形世界背后的整体规律。有的分形描绘自然,有的分形展现变化,有的分形演示递归。而它们共同告诉我们:简单的规则,经过不断重复,就能创造令人惊叹的世界。
你还可以继续欣赏更多奇妙的数学图形,或者查看维基百科上更多关于毕达哥拉斯树的介绍