天天看点

使用L系统画苹果树

    苹果树分为大树干、大树枝、小树干、小树枝,这些树干和树枝有自相似性,可以用L系统(Lindenmayer系统)来表达。

    L系统,是荷兰生物学家Aristid Lindenmayer(林登麦伊尔),于1968年提出的细胞交互作用的数学模型,它广泛应用在模拟生物生长的研究和实验。

    下面介绍,在Scratch里使用L系统来实现苹果树的生长。

1、定义"随机树干长度"积木

使用L系统画苹果树

图(1) 定义"随机树干长度"积木

使用L系统画苹果树

图(2) "随机树干长度"积木代码

2、定义"随机分支角度"积木

使用L系统画苹果树

图(3) 定义"随机分支角度"积木

使用L系统画苹果树

图(4) "随机分支角度"积木代码

3、定义"苹果树"积木

使用L系统画苹果树

图(5) 定义"苹果树"积木

使用L系统画苹果树

图(6) "苹果树"积木代码

4、定义"还原"积木

使用L系统画苹果树

图(7) 定义"还原"积木

使用L系统画苹果树

图(8) "还原"积木代码

5、定义4个变量

  • 分支角度
  • 缩小比例
  • 圆弧角度
  • 枝干长度
使用L系统画苹果树

图(9) 定义4个全局变量

6、定义2个广播

6.1 "分叉"广播

使用L系统画苹果树

图(10) 处理"分叉"广播事件

// ### 6.2 "画树枝1"广播

使用L系统画苹果树

图(11) 处理"画树枝1"广播事件

7、主函数

使用L系统画苹果树

图(12) 主函数

效果如下:

使用L系统画苹果树

图(13) L系统生成的苹果树A

使用L系统画苹果树

图(14) L系统生成的苹果树B

使用L系统画苹果树

图(15) L系统生成的苹果树C