龙空技术网

Scratch画分形几何图系列56:多方法画六角雪花分形

刘_汉杰 64

前言:

如今我们对“雪花算法重复的概率”大概比较关怀,姐妹们都需要学习一些“雪花算法重复的概率”的相关资讯。那么小编也在网摘上汇集了一些有关“雪花算法重复的概率””的相关文章,希望我们能喜欢,我们一起来学习一下吧!

Scratch画分形几何图系列56:多方法画六角雪花分形

前面我们画了有趣的高斯铂分形,并将其变形为雪花分形。本篇我们分别用IFS迭代系统和L-系统画雪花分形图形。

将两种画法放在一个程序里,可用一个总控程序,让用户选择画法,根据用户输入结果发消息,各角色根据消息启动画图程序。而且如果用户输入有误,继续询问等待:

(一)IFS系统画法:我们继续使用IFS标准仿射变换函数系统:

x1=xRcosθ-yRsinθ+e,y1=xRsinθ+yRcosθ+f

(1)基本生成元素是下图中的7个线段,用不同颜色区分开来,其中有5根较长线段,2根较短线段,较长线段R有如下规则确定:一段R(下图中横向右边的绿色线段)与另一段由R和它的构成黄金分割关系的线段(下图中横向的左边的杂色线段)加起来等于1个单位长。

FS部分数据R、θ、e、f 的示意图

根据生成分形的基本图形,考察相似比(伸缩比)R、旋转角θ以及横纵平移值e、f:

由R作为迭代的伸缩比且作为较长线段的长,较短线段L=R*R。

(2)六角雪花的IFS数据:

n

R

θ

e

f

p

1

R

0

1-R

0

1/6

2

R

-120

1-R

0

1/6

3

R

120

1-R

0

1/6

4

R

180

1-R

0

1/6

5

R

0

0

0

1/6

6

R*R

-60

1-R

0

1/12

7

R*R

60

1-R

0

1/12

(3)根据IFS数据给出有概率决定变换模式的控制子程序,由于7个概率有5个相同为1/6,其余为1/12,故取1~12之间的随机数更简洁:

(4)画六瓣雪花之一瓣的描图程序:

单瓣雪花

(5)要画出6瓣雪花,就需要把每一瓣的点旋转6次每次转60度,因此需要一个旋转子程序:

(6)画完整六瓣雪花的描图程序:

(7)六瓣雪花的分形图:

(二)使用L系统递归算法画法:

(1)首先定义保存位置和恢复位置的子程序:

(2)定义画六瓣雪花递归子程序:

(3)L系统画六瓣雪花的主程序:

(4)L系统画雪花分形图:

(三)拓展:尝试改变参数R的值,看看雪花有什么变化?

标签: #雪花算法重复的概率