编程模拟自然(一):如何画一颗静态树

序·上帝创世篇

  万物初始之前,宇宙无边无际,充斥着黑暗与混沌。

  元厌倦了这无边的黑暗,说:“你好,光!”,于是世间就有了光。

第一章 世界上最好的树

  “元”计划用一个 Sprint 周期,造出世界上最好的树。

 图1-1 递归分叉

  “树极生三干,三干生六枝。”

第二章 黄金分割比例

  第二天,“元”找到了一个无限不循环小数:

  0.6180339887 4989484820 458683436...

图2-1 树干长度缩放(0.618, 0.5, 1, 1.6)

图2-2 树干宽度缩放

  “建议改成:完 全 二 叉 树”

第三章 非对称

  第三天,“元”把每个枝干随机旋转一定的角度。

 图3-1 随机扰动

  “这个世界上有没有真的随机呢?”

第四章 N叉树

  第四天,“元”用 N 叉树取代了二叉树。

 图4-1 更多的分支

  “一叉树称作草(一种植物)。”

第五章 绿叶

  第五天,“元”让树梢派生出叶子和果实。

图5-1 叶子与果实

  “周六加班造人。”

后记

  -- 夏,我去给你摘果子

  -- 小心喔,树上有 String 形生物

附录

  预知后情,且看下回分解。了解更多请浏览目录导航

posted @ 2015-06-06 15:07  ExperDot  阅读(2656)  评论(5编辑  收藏  举报