1use image::Rgb;
2
3use dcc_lsystem::renderer::{ImageRendererOptionsBuilder, Renderer};
4use dcc_lsystem::turtle::{TurtleAction, TurtleLSystemBuilder};
5
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("F", TurtleAction::Forward(30))
11 .token("+", TurtleAction::Rotate(90))
12 .token("-", TurtleAction::Rotate(-90))
13 .axiom("F")
14 .rule("F => F + F - F - F + F");
15
16 let (mut system, renderer) = builder.finish();
17 system.step_by(7);
18
19 let options = ImageRendererOptionsBuilder::new()
20 .padding(10)
21 .thickness(4.0)
22 .fill_color(Rgb([255u8, 255u8, 255u8]))
23 .line_color(Rgb([0u8, 0u8, 100u8]))
24 .build();
25
26 renderer
27 .render(&system, &options)
28 .save("koch_curve.png")
29 .expect("Failed to save koch_curve.png");
30}