#l-systems #lindenmayer

lsystems

一个用于处理Lindenmayer系统的简单库

2个版本

使用旧的Rust 2015

0.2.1 2017年1月21日
0.2.0 2017年1月21日
0.1.0 2016年2月6日

4#lindenmayer

GPL-3.0 许可证

16KB
121

简介

该项目旨在为Rust编程语言中处理L-systems提供一个简单的接口。

示例

let mut system = LSystem::with_axiom("b");
system.add_rule('a', "ab");
system.add_rule('b', "a");

for step in 0..10 {
    println!("Step #{}: {}", step, system.next().unwrap());
}
let mut system = LSystem::with_axiom("baaaaaaa");
system.add_rule('b', "a");
system.add_context_rule((Some("b"), 'a', None), "b");

assert_eq!(system.next().unwrap(), "baaaaaaa");
assert_eq!(system.next().unwrap(), "abaaaaaa");
assert_eq!(system.next().unwrap(), "aabaaaaa");
assert_eq!(system.next().unwrap(), "aaabaaaa");
assert_eq!(system.next().unwrap(), "aaaabaaa");
assert_eq!(system.next().unwrap(), "aaaaabaa");
assert_eq!(system.next().unwrap(), "aaaaaaba");
assert_eq!(system.next().unwrap(), "aaaaaaab");
assert_eq!(system.next().unwrap(), "aaaaaaaa");

lib.rs:

一个使处理L-systems变得简单的库。使用字符作为前驱和字符串作为后继。

示例

use lsystems::LSystem;
let mut system = LSystem::with_axiom("b");
system.add_rule('a', "ab");

依赖

~320–550KB