向大家问好!
我目前正在研究道路网络的程序生成,并偶然发现了 L 系统算法。根据我从有关该主题的各种科学论文以及有关该主题的论文的进一步论文中了解到,算法更改为使用“全局目标和局部约束”,其中修改所采取的路径以适应地形等输入值和人口密度。现在我理解了这部分,或者至少理解了整体概念,但是我应该如何修改算法呢?
现在我有一个字符串,它根据一组规则随时间步长进行修改。然后,我分析字符串并在浏览字符时移动和转动,渲染结果并在屏幕上获得漂亮的图案。
现在,要创建主要道路网络,我是否仍然应该使用带有规则集的基本公理,然后应用约束?如果是这样,一套好的起始值和规则可能是什么?
或者我应该用约束和全球目标取代基本规则集?如果是这样,原来的 L 系统算法还剩下什么?
非常感谢任何帮助,并且为了记录,我正在 C# 和 XNA 中执行此操作,尽管我认为这更多是在理论层面上。
谢谢你的时间,
Karl
所以,上周我一直在谷歌上搜索、阅读和理解更多内容,我找到了我认为可以分享的问题的解决方案。
我发现这篇精彩的博客文章基本上为我理清了一切:
http://www.newton64.ca/blog/?p=747#7472 http://www.newton64.ca/blog/?p=747#7472
该文章基于此处创建的另一篇博客文章:
现在,就 L 系统而言,我不太确定这种方法是否真的是 L 系统。当然,构建网络的迭代过程有相似之处。在 L 系统中,字符串随着迭代而增长,并且分支是使用“[”或“]”创建的(至少在我见过的情况下),并且在我现在采用的方法中,一个 while 循环和一个优先级队列确实几乎是同一件事。
我还想指出,我并不完全理解“描述”如何使用 L 系统生成道路网络的论文,所以我的推理可能有点偏离。但除了算法命名和边界之外,我找到了一个适合我的解决方案,目前来说这很好。
快乐编码!
Karl
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)