![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分形
文章平均质量分 80
第二月
这个作者很懒,什么都没留下…
展开
-
LS文法构图算法(1) 简介
文法构图算法是仿照语言学中的语法生成方法来构造图形的一种算法。 任何语言都是由一个字母集和一些构成有意义语句的文法规则组成的。 著名语言学家N.Chomsky在20世纪50年代给出了递归生成语法的方法,指定一个或几个初始字母和一组“生成规则”,将生成规则反复作用到初始字母和新生成的字母上,产生出整个语言。比如:字母表:A, B生成规则:A原创 2007-01-17 14:02:00 · 5290 阅读 · 2 评论 -
递归算法(1) Cantor三分集
Cantor三分集的构造如下图所示,一条线段ab被均分为三段,保留其两边的两段,中间一段去掉,然后把得到的每一段再继续进行划分,如此反复。 Cantor三分集的绘制十分简单,是一种最简单的分形实例,它的算法如下:cx = ax + ( bx – ax ) / 3cy = ay + hdx = bx – ( bx – ax ) / 3dy =原创 2007-01-18 13:07:00 · 6290 阅读 · 0 评论 -
LS文法构图算法(2) Koch雪花
一个Koch雪花由3条Koch曲线组成,先来看看Koch曲线是如何绘制的。如下图所示: 一条由左向右延伸的线段,长度为3F,如果把它的中间一段替换为一个没有底的等边三角形,就成了图中下部所示的折线。变换前后,两种图形起点到终点之间的距离不变。接下去,如果再把图形中每一条线段都替换为相应的折线,并不断重复下去,最终就形成了Koch曲线。原创 2007-01-19 14:32:00 · 6063 阅读 · 4 评论 -
递归算法(2) Hilbert-Peano曲线
如上图所示,这就是一个Hilbert-Peano曲线,它的特点是蜿蜒曲折、一气呵成,能经过平面上某一正方形区域内所有的点。 Hilbert-Peano曲线也是一种分形图形,它可以画得无限复杂。它的初始图元是正方形,在迭代生成的过程中,不断细化出小的正方形,图中的线段其实是用于连接各正方形的连线。 参照下图所示,以一次基本的迭代为例,这次迭代原创 2007-01-23 13:35:00 · 9419 阅读 · 2 评论 -
LS文法构图算法(4) 分形树
分形树的基本分形元如下图所示,用比较简单的单规则LS文法即可生成。 只是有一个地方要注意,即图形中存在分叉点A和B,从这两点出发绘制完支线后,还要再回到出发点,所以在画到这种点时,要把当前的位置和方向信息入栈保存,支线画完后,再把信息恢复出来,从分支点接着画。 照以下文法可以生成一个最简单的分形树: delta原创 2007-01-26 10:31:00 · 6273 阅读 · 5 评论 -
LS文法构图算法(3) Hilbert-Peano曲线
在前面一篇中讲了如何用递归算法来画Hilbert-Peano曲线,这一篇再尝试一下使用LS文法构图算法来构建它。这就要使用多规则的LS文法了,多规则情况下的字母表中,有1个以上的字符,在迭代时更加复杂,每一个字符都要用相应的规则来替换;在绘图时,可以为各种字符规定不同的绘图动作,有的画图,有的可以不画图。 要画Hilbert-Peano这种比较复杂的图,关键就是要原创 2007-01-25 17:37:00 · 5912 阅读 · 2 评论