Animating randomized L-Systems in real time

栏目: IT技术 · 发布时间: 4年前

内容简介:or clickhere orhere orhere (SEIZURE WARNING) for some more examples of what can be generatedClicking anywhere on the visualization will bring up a menu with a bunch of sliders you can use to change how the L-Systems are generated. Clicking off the menu wil

Random L-Systems Visualizer

Click here to start the visualization

or clickhere orhere orhere (SEIZURE WARNING) for some more examples of what can be generated

How to use this site:

Clicking anywhere on the visualization will bring up a menu with a bunch of sliders you can use to change how the L-Systems are generated. Clicking off the menu will make it disppear. Using the menu you can control the following parameters:

  • Fade time : The time it takes for a line to completely fade away

  • Line length : The length of the shortest possible straight line (the distance that the turtle moves when it is told to move forward)

  • Line width : The width of the lines being drawn

  • Lines per frame : The number of lines that are drawn every frame

  • Time per frame : How often a frame is drawn

  • Angle randomness : 100% angle randomness means all angles are randomly chosen from between 5° and 180°. 0% angle randomness means all angles are chosen from a pool of around 10 "nice looking" angles (such as 90°, 20°, etc)

  • Maximum system length : The length to grow each system's string before switching to a new system

The remaining parameters are explained in the following diagram of a complete L-System:

Animating randomized L-Systems in real time

If you want to share your current settings you can click the save settings in url button at the bottom of the menu and it will change the URL of the page to one that includes all the current parameters.

A brief explanation of L-Systems:

Growing an L-System

An L-System is a string rewriting system that can generate fractal and tree like structures. They consist of a seed string and a set of rules to grow the seed into a more complex string. Each rule operates on a single character of the string, and replaces that character with another string. For example, consider the following seed and rules:

Seed: "abc"  
Rules:  
    "a" -> "cc",  
    "c" -> "ba"

Applying these rules to the seed will yield the string "ccbba" . Now the same rules can be applied to this new string to grow the system even more:

"ccbba" becomes "bababbcc"

"bababbcc" becomes "bccbccbbbaba"

etc

Visualizing an L-System

L-Systems can be visualized in many different ways, but the most common method involves using a turtle .

First, you come up with an L-System as well as an arbitrary angle, A , to associate the L-System with. Then, you grow your L-System string by applying rules to the seed numerous times. To draw the L-System using the turtle you interpret every character of the grown string as an instruction to the turtle. Most L-Systems visualizers (including this one) use the following character set:

  • "F": Move the turtle forward
  • "+": Turn the turtle A degrees clockwise
  • "-": Turn the turtle A degrees counterclockwise
  • "[": Push the current position of the turtle onto a stack
  • "]": Pop a position off the stack and move the turtle to that position

Any other characters can be ignored by the turtle.


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

今日简史

今日简史

[以] 尤瓦尔·赫拉利 / 林俊宏 / 中信出版集团 / 2018-8 / 68

四年前,尤瓦尔•赫拉利的《人类简史》横空出世,颠覆了我们关于人类进化的认知。2016年,他的《未来简史》再度惊艳四座,刷新了我们对未来的想象,掀起了全球关于人工智能讨论的新思潮。现在,“简史三部曲”收官之作《今日简史》推出,将目光聚焦到当下,直面今天关乎我们每个人命运的问题和挑战。 尤瓦尔•赫拉利认为,智人之所以能够崛起成为地球的主宰者,主要原因在于其具备了虚构故事的能力。然而,在当前这样一......一起来看看 《今日简史》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试