签到天数: 3095 天 连续签到: 1 天 [LV.Master]开坛元老
|
论坛有人问到这问题,因此做了个专题技术帖
斐波那契数列 + 植物生长规律
先了解下向日葵的生长规律:
大自然的机制使得原基的生长遵循着有效率堆排的几何原理。
一九七九年,数学家伏格(H. Vogel)以电脑模拟原基的生长情形,他用圆点来代表向日葵的原基,在发散角为固定值的假设下,试图找出最佳的发散角使这些圆点尽可能紧密地排在一起。实验证明,当发散角小于 137.5 度或大于超过 137.5 度,圆点间都会出现空隙,只以一组螺线陈列。
而发散角等于137.5 度时,清晰的正反两组螺线叠加出现了,如果要使圆点排列没有空隙,发散角就必须是黄金角,只有这样,向日葵花盘最密实、最坚固,能量吸收最有效率。
(将圆周长依黄金比例分割成a b两段,小弧长b所对应的圆心角约为137.51°称为黄金角。)
(发散角是指相继出生的原基按螺线规律排布时的两两夹角,晶体学先驱布拉菲兄弟(Auguste and Louise Bravais)发现各组原基发散角非常相近,如下图,非常清楚的指出了原基的规律排布和不相邻原则。)
所以,绘制图形时依靠单螺线复制旋转是不可能得出正确图形的,使用双螺线的方式才可以模拟效果,但通过上文的讲解,大家也明白了双螺线也只是视觉上的近似欺骗,围绕着向日葵原基的成长方式去做才算完美解法。
我们先说双螺旋的绘制方法。
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
这个数列从第二项开始,每一项都等于前两项之和。
自然界中到处可见斐波那契数列的踪迹。树技上的分枝、花的瓣数都是斐波那契数列,百合 3,梅花 5,桔梗常为 8,金盏花 13。。。等等。向日葵也是一样,前面我们说到了在黄金夹角137.5°的情况下,会出现正反两组螺线,常见的螺线数目为34组和55组,较大的向日葵的螺线数目则为89组和144组,更大的甚至还有144组和233组。这些全都是费氏数列中相邻两项的数值。
就我们要解的题目来看是,正旋21组螺线和逆旋34组螺线,所有的交点就是原基点,第4幅图中间的分布调整是因为真实的向日葵中间全是细小密布未成长的原基,基于原题的调整。
然后是第2种解法,就是严格按照黄金夹角和螺线的生长规律来模拟。
1 首先画一个等分的阿基米德螺线,要层数足够多。可以画很多个同心圆,然后半圆错位得出螺线,不要用AI的“螺旋形工具”,那个是有衰变的,不等分。
2 我没用圆点旋转黄金角来工作,因为每个圆都要相交螺线上,每个圆都需要手动位移太累。我编辑了一根“圆头虚线”,如图,线直接拉伸相交螺线就方便多了,最后转曲加外框,删掉直线部分,留下圆头,附圆头虚线的“描边参数”。
3 将圆头虚线围绕圆心做“旋转”,每次旋转137.5°,且让交汇于螺线,这里可以使用“动作”面板录制动作,2个步骤,“旋转”和“等比缩放”,因为我拉伸都懒得,算好放大比例让圆头虚线正好相交螺线就行。
4 重复若干
5 大约要5百次旋转跳跃我闭着眼以后。。。图形才比较饱满,把虚线展开,只留圆形端头,适度调整描边粗细,调整中间的分布,就可以得到真正的向日葵生长图谱了。
此视频对自然界的数学美有形象的诠释,建议观看。
事实上我没真的展开去做,我只知道我能用这两张方法去解,再不济照着原图拼一个,还能用PS的半调图案模拟出这个来,写这文章的时间比AI的操作要多。
其一,让大家了解斐波那契数列数列在自然界的应用,充满数学美和敬畏之心;其二,了解ADOBE ILLUSTRATOR对此题的解法,解法二类似于暴力破解,其实没必要去拼体力嘛,按黄金角和阿基米德螺线写个插件,图形一键成形,甚至是144组正旋 x 233组逆旋的。
三大猜想之一四色定理,超级计算机用1200小时100亿判断硬破了,咱不能抬杠,让数学家们一起去体力破解吧,这种挑战是无意义的,有意义的事在于你尝试用更简洁更美更效率的方法去解决问题。数学也好,设计也好,乃至人生,不外如是。
NND,刚来知乎,被一个生僻冷门问题烧了这么多时间。。。
这个问题在 [2] 的第4章有很详细的论述。
虽然在植物学上,点的数目与 Fibonacci 数列相关,但只要按照 Vogel's formula [3]:
就可以生成这种模式(pattern)的图,如5000个点:
如果角度差了0.1~0.2度,很快就会失去这种均匀分布的特性
延伸阅读 犀牛画法 http://bbs.rhino3d.us/thread-38481-1-1.html
|
|