dragon_curve_data/
dragon_curve_data.rs1use 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}