dragon_curve_data/
dragon_curve_data.rs

1use dcc_lsystem::renderer::DataRendererOptions;
2use dcc_lsystem::renderer::Renderer;
3use dcc_lsystem::turtle::{TurtleAction, TurtleLSystemBuilder};
4
5fn main() {
6    let mut builder = TurtleLSystemBuilder::new();
7
8    builder
9        .token("X", TurtleAction::Nothing)
10        .token("Y", TurtleAction::Nothing)
11        .token("F", TurtleAction::Forward(30))
12        .token("+", TurtleAction::Rotate(-90))
13        .token("-", TurtleAction::Rotate(90))
14        .axiom("F X")
15        .rule("X => X + Y F +")
16        .rule("Y => - F X - Y");
17
18    let (mut system, renderer) = builder.finish();
19    system.step_by(15);
20
21    let rv = renderer.render(&system, &DataRendererOptions::default());
22    println!("Dragon curve builder generated {} lines", rv.len());
23}