L-系统路网如何修改? [英] How is L-systems for road networks modified?

查看:263
本文介绍了L-系统路网如何修改?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问候每一个和所有!

我目前正在研究程序生成的路网和偶然发现了L系统算法。从我从关于这个问题的各种科学论文,以及关于该主题的论文进一步试卷了解,该算法更改为使用全球目标和局部约束,其中采取的路径被修改,以适应输入值,如地形和人口密度。现在这部分我明白了,或至少整体的概念,但我怎么修改算法?

I'm currently looking into procedural generation of a road network and stumbled upon the L-system algorithm. From what I understand from various scientific papers on the subject, and further papers on the papers on the subject, the algorithm is changed to use "global goals and local constraints", in which the taken path is modified to fit input values such as terrain and population density. Now that part I understand, or atleast the overall concept, but how am I supposed to modify the algorithm?

现在我有被修改过,根据时间步长的字符串的一组规则。然后我分析了串并移动,把我经历的字符,呈现的结果,并在屏幕上得到美丽的图案。

Right now I have a string which is modified over timesteps according to a set of rules. I then analyze the string and move and turn as I go through the chars, render the result and get beautiful patterns on screen.

现在,创建主要道路网络,我应该还是使用基本公理与规则集,然后应用限制?如果是这样,有什么能一套好的startvalues和规则是什么?

Now, to create a network of major roads, should I still use a base axiom with a ruleset and then apply the constraints? And if so, what could a set of good startvalues and rules be?

或者我应该相当取代的制约和全球目标的基本规则集?如果是这样,剩下原来的L系统的算法?

Or should I rather replace the basic ruleset with the constraints and global goals? And if so, what remains of the original L-system algorithm?

任何帮助是极大的赞赏,并记录在案我在做这在C#和XNA,allthough我reccon这是更上了一个理论上的平面上。

Any help is greatly appreciated, and for the record I'm doing this in C# and XNA, allthough I reccon this is more on a theoretical plane.

感谢您的时间,

卡尔

推荐答案

所以,我一直在谷歌上搜索,阅读和上周了解更多,我已经找到了解决,我想我的问题可能会共享。
我发现这个辉煌的博客张贴这基本理顺所有的东西对我来说:

So, I've been googling, reading and understanding more the last week and I've found a solution to the problem which I thought I might share. I found this brilliant blog post which basically straightened everything out for me:

http://www.newton64.ca/blog/?p=747#7472

该职位是根据这里另一篇博客中创办时间:

That post is based upon another blog post founded here:

HTTP :?//mollyrocket.com/forums/viewtopic.php T = 730安培; SID = a9a2628b059a727cbde67309757ed178

现在,至于L-系统进入,我不太清楚这种方法是否真的是一个L系统了。当然,也有关于建设网络的迭代过程相似。在L-系统串增长在迭代,并使用创建分支[或](ATLEAST在我见过的情况下),并在该方法我现在正在一个while循环和优先级队列呢几乎同样的事情。

Now, as far as the L-system goes, I'm not quite sure whether this approach really is an L-system anymore. Sure, there are similarities regarding the iterative process of building the network. In L-systems the string grows over iterations and branches are created using "[" or "]" (atleast in the cases I've seen), and in the approach I'm taking now a while-loop and a priority queue does pretty much the same thing.

我也想指出,我没有完全理解的篇描述了如何使用L系统生成之路网络,让我的推理可能会有点在这里下车。但算法命名和边界值之外,我发现,我工作的解决方案,这是很好的了。

I also would like to point out that I did not fully understand the papers "describing" how to use an L-system for generating a road network, so my reasoning might be a bit off here. But algorithm naming and boundries aside, I found a solution that works for me, which is good for now.

编程快乐!

卡尔

这篇关于L-系统路网如何修改?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆