前言:
如今我们对“雪花算法重复的概率”大概比较关怀,姐妹们都需要学习一些“雪花算法重复的概率”的相关资讯。那么小编也在网摘上汇集了一些有关“雪花算法重复的概率””的相关文章,希望我们能喜欢,我们一起来学习一下吧!Scratch画分形几何图系列56:多方法画六角雪花分形
前面我们画了有趣的高斯铂分形,并将其变形为雪花分形。本篇我们分别用IFS迭代系统和L-系统画雪花分形图形。
将两种画法放在一个程序里,可用一个总控程序,让用户选择画法,根据用户输入结果发消息,各角色根据消息启动画图程序。而且如果用户输入有误,继续询问等待:
(一)IFS系统画法:我们继续使用IFS标准仿射变换函数系统:
x1=xRcosθ-yRsinθ+e,y1=xRsinθ+yRcosθ+f
(1)基本生成元素是下图中的7个线段,用不同颜色区分开来,其中有5根较长线段,2根较短线段,较长线段R有如下规则确定:一段R(下图中横向右边的绿色线段)与另一段由R和它的构成黄金分割关系的线段(下图中横向的左边的杂色线段)加起来等于1个单位长。
根据生成分形的基本图形,考察相似比(伸缩比)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的值,看看雪花有什么变化?
标签: #雪花算法重复的概率