分形学习之LS文法构图

本文介绍了LS文法,一种由Axxx Lxxx发明的形式语言,用于二维平面上的迭代过程。通过公理和重写规则生成图形,如Koch曲线。LS文法在迭代中将符号替换,最终绘制出分形图像。文章提供了如何根据LS文法生成图形的代码示例,展示了如何使用Java实现分形树的绘制,并提供了不同形态的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果昨天的递归分形算法画出的图案好象不那么有技术含量,那么今天的LS文法构图算法就很有档次了!CQ今天弄出了这个东西后也是非常激动啊!

   好东西啊!要和大家分享!哈哈!

 首先来介绍一下LS文法,这是在美国生物学家Axxx Lxxx (名字太长,不好记!不过感谢他的发明!哈哈!) 发明的一种文法描述方法: graftal上逐渐发展起来的形式语言的一个重要分支.后来人们称之为L-system.

讲了些没有实际作用的历史,现在就进入正题!

LS文法是一类独特的迭代过程,他的核心思想就是重写.作为一种形式话的语言,LS文法用字母表和符号串来表达生成对象的初始形式,称为公理.然后根据一组产生式重写规则,将初始的每个字符依次替换为新的字符形式,反复进行,直到最后生成图形.

   在二维平面上,LS是这样工作的!

   首先讲符号:

F: 以当前方向前进,画线

f: 以当前方向前进,不画线

+:逆时针旋转 alpha

-:顺时针旋转 alpha

[:当前信息压栈

]:将上一个[处存的信息出栈

 

 

 

我们来看koch曲线的LS文法生成(不知道koch曲线吗!网上找找资料吧!分形入门的时候本来要贴的,忘记了!哈哈!)

w:    F      (初始的形态: 一条直线段)

alpha  60     (变化的角度)

P:    F-> F – F + + F – F (变化规则: 把一条直线段变成四个小直线段)

 

 

 

然后再进行LS文法生成:

Step 1 : F

Step 2 : F – F + + F – F

Step3 : F – F + + F – F –F – F + + F – F + + F – F + + F – F –F – F + + F – F

Setp4: …

就这样依次无限循环下去就得到了koch

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值