pub struct ImageRendererOptionsBuilder { /* private fields */ }Implementations§
Source§impl ImageRendererOptionsBuilder
impl ImageRendererOptionsBuilder
Sourcepub fn new() -> Self
pub fn new() -> Self
Examples found in repository?
examples/koch_curve.rs (line 19)
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}More examples
examples/sierpinski_arrowhead.rs (line 21)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("A", TurtleAction::Forward(200))
11 .token("B", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(60))
13 .token("-", TurtleAction::Rotate(-60))
14 .axiom("A")
15 .rule("A => B - A - B")
16 .rule("B => A + B + A");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(15.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_arrowhead.png")
31 .expect("Failed to save to sierpinski_arrowhead.png");
32}examples/sierpinski_triangle.rs (line 21)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("F", TurtleAction::Forward(200))
11 .token("G", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(120))
13 .token("-", TurtleAction::Rotate(-120))
14 .axiom("F - G - G")
15 .rule("F => F - G + F + G - F")
16 .rule("G => G G");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(8.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_triangle.png")
31 .expect("Failed to save to sierpinski_triangle.png");
32}examples/dragon_curve.rs (line 23)
7fn main() {
8 let mut builder = TurtleLSystemBuilder::new();
9
10 builder
11 .token("X", TurtleAction::Nothing)
12 .token("Y", TurtleAction::Nothing)
13 .token("F", TurtleAction::Forward(30))
14 .token("+", TurtleAction::Rotate(-90))
15 .token("-", TurtleAction::Rotate(90))
16 .axiom("F X")
17 .rule("X => X + Y F +")
18 .rule("Y => - F X - Y");
19
20 let (mut system, renderer) = builder.finish();
21 system.step_by(15);
22
23 let options = ImageRendererOptionsBuilder::new()
24 .padding(10)
25 .thickness(8.0)
26 .fill_color(Rgb([255u8, 255u8, 255u8]))
27 .line_color(Rgb([100u8, 0u8, 0u8]))
28 .build();
29
30 renderer
31 .render(&system, &options)
32 .save("dragon_curve.png")
33 .expect("Failed to save to dragon_curve.png");
34}examples/fractal_binary_tree.rs (line 26)
8fn main() {
9 let mut builder = TurtleLSystemBuilder::new();
10
11 builder
12 .token("0", TurtleAction::Forward(50))
13 .token("1", TurtleAction::Forward(50))
14 .token("L", TurtleAction::Rotate(45))
15 .token("R", TurtleAction::Rotate(-45))
16 .token("[", TurtleAction::Push)
17 .token("]", TurtleAction::Pop)
18 .axiom("0")
19 .rule("1 => 1 1")
20 .rule("0 => 1 [ L 0 ] R 0")
21 .rotate(90);
22
23 let (mut system, renderer) = builder.finish();
24 system.step_by(9);
25
26 let options = ImageRendererOptionsBuilder::new()
27 .padding(20)
28 .thickness(5.5)
29 .fill_color(Rgb([255u8, 255u8, 255u8]))
30 .line_color(Rgb([0u8, 100u8, 100u8]))
31 .build();
32
33 renderer
34 .render(&system, &options)
35 .save("fractal_binary_tree.png")
36 .expect("Failed to save to fractal_binary_tree.png");
37}examples/fractal_plant.rs (line 24)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("X", TurtleAction::Nothing)
11 .token("F", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(25))
13 .token("-", TurtleAction::Rotate(-25))
14 .token("[", TurtleAction::Push)
15 .token("]", TurtleAction::Pop)
16 .axiom("X")
17 .rule("X => F + [ [ X ] - X ] - F [ - F X ] + X")
18 .rule("F => F F")
19 .rotate(70);
20
21 let (mut system, renderer) = builder.finish();
22 system.step_by(6);
23
24 let options = ImageRendererOptionsBuilder::new()
25 .padding(20)
26 .thickness(18.0)
27 .fill_color(Rgb([255u8, 255u8, 255u8]))
28 .line_color(Rgb([0u8, 100u8, 0u8]))
29 .build();
30
31 renderer
32 .render(&system, &options)
33 .save("fractal_plant.png")
34 .expect("Failed to save fractal_plant.png");
35}Additional examples can be found in:
Sourcepub fn padding(&mut self, padding: u32) -> &mut Self
pub fn padding(&mut self, padding: u32) -> &mut Self
Examples found in repository?
examples/koch_curve.rs (line 20)
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}More examples
examples/sierpinski_arrowhead.rs (line 22)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("A", TurtleAction::Forward(200))
11 .token("B", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(60))
13 .token("-", TurtleAction::Rotate(-60))
14 .axiom("A")
15 .rule("A => B - A - B")
16 .rule("B => A + B + A");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(15.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_arrowhead.png")
31 .expect("Failed to save to sierpinski_arrowhead.png");
32}examples/sierpinski_triangle.rs (line 22)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("F", TurtleAction::Forward(200))
11 .token("G", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(120))
13 .token("-", TurtleAction::Rotate(-120))
14 .axiom("F - G - G")
15 .rule("F => F - G + F + G - F")
16 .rule("G => G G");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(8.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_triangle.png")
31 .expect("Failed to save to sierpinski_triangle.png");
32}examples/dragon_curve.rs (line 24)
7fn main() {
8 let mut builder = TurtleLSystemBuilder::new();
9
10 builder
11 .token("X", TurtleAction::Nothing)
12 .token("Y", TurtleAction::Nothing)
13 .token("F", TurtleAction::Forward(30))
14 .token("+", TurtleAction::Rotate(-90))
15 .token("-", TurtleAction::Rotate(90))
16 .axiom("F X")
17 .rule("X => X + Y F +")
18 .rule("Y => - F X - Y");
19
20 let (mut system, renderer) = builder.finish();
21 system.step_by(15);
22
23 let options = ImageRendererOptionsBuilder::new()
24 .padding(10)
25 .thickness(8.0)
26 .fill_color(Rgb([255u8, 255u8, 255u8]))
27 .line_color(Rgb([100u8, 0u8, 0u8]))
28 .build();
29
30 renderer
31 .render(&system, &options)
32 .save("dragon_curve.png")
33 .expect("Failed to save to dragon_curve.png");
34}examples/fractal_binary_tree.rs (line 27)
8fn main() {
9 let mut builder = TurtleLSystemBuilder::new();
10
11 builder
12 .token("0", TurtleAction::Forward(50))
13 .token("1", TurtleAction::Forward(50))
14 .token("L", TurtleAction::Rotate(45))
15 .token("R", TurtleAction::Rotate(-45))
16 .token("[", TurtleAction::Push)
17 .token("]", TurtleAction::Pop)
18 .axiom("0")
19 .rule("1 => 1 1")
20 .rule("0 => 1 [ L 0 ] R 0")
21 .rotate(90);
22
23 let (mut system, renderer) = builder.finish();
24 system.step_by(9);
25
26 let options = ImageRendererOptionsBuilder::new()
27 .padding(20)
28 .thickness(5.5)
29 .fill_color(Rgb([255u8, 255u8, 255u8]))
30 .line_color(Rgb([0u8, 100u8, 100u8]))
31 .build();
32
33 renderer
34 .render(&system, &options)
35 .save("fractal_binary_tree.png")
36 .expect("Failed to save to fractal_binary_tree.png");
37}examples/fractal_plant.rs (line 25)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("X", TurtleAction::Nothing)
11 .token("F", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(25))
13 .token("-", TurtleAction::Rotate(-25))
14 .token("[", TurtleAction::Push)
15 .token("]", TurtleAction::Pop)
16 .axiom("X")
17 .rule("X => F + [ [ X ] - X ] - F [ - F X ] + X")
18 .rule("F => F F")
19 .rotate(70);
20
21 let (mut system, renderer) = builder.finish();
22 system.step_by(6);
23
24 let options = ImageRendererOptionsBuilder::new()
25 .padding(20)
26 .thickness(18.0)
27 .fill_color(Rgb([255u8, 255u8, 255u8]))
28 .line_color(Rgb([0u8, 100u8, 0u8]))
29 .build();
30
31 renderer
32 .render(&system, &options)
33 .save("fractal_plant.png")
34 .expect("Failed to save fractal_plant.png");
35}Additional examples can be found in:
Sourcepub fn thickness(&mut self, thickness: f32) -> &mut Self
pub fn thickness(&mut self, thickness: f32) -> &mut Self
Examples found in repository?
examples/koch_curve.rs (line 21)
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}More examples
examples/sierpinski_arrowhead.rs (line 23)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("A", TurtleAction::Forward(200))
11 .token("B", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(60))
13 .token("-", TurtleAction::Rotate(-60))
14 .axiom("A")
15 .rule("A => B - A - B")
16 .rule("B => A + B + A");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(15.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_arrowhead.png")
31 .expect("Failed to save to sierpinski_arrowhead.png");
32}examples/sierpinski_triangle.rs (line 23)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("F", TurtleAction::Forward(200))
11 .token("G", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(120))
13 .token("-", TurtleAction::Rotate(-120))
14 .axiom("F - G - G")
15 .rule("F => F - G + F + G - F")
16 .rule("G => G G");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(8.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_triangle.png")
31 .expect("Failed to save to sierpinski_triangle.png");
32}examples/dragon_curve.rs (line 25)
7fn main() {
8 let mut builder = TurtleLSystemBuilder::new();
9
10 builder
11 .token("X", TurtleAction::Nothing)
12 .token("Y", TurtleAction::Nothing)
13 .token("F", TurtleAction::Forward(30))
14 .token("+", TurtleAction::Rotate(-90))
15 .token("-", TurtleAction::Rotate(90))
16 .axiom("F X")
17 .rule("X => X + Y F +")
18 .rule("Y => - F X - Y");
19
20 let (mut system, renderer) = builder.finish();
21 system.step_by(15);
22
23 let options = ImageRendererOptionsBuilder::new()
24 .padding(10)
25 .thickness(8.0)
26 .fill_color(Rgb([255u8, 255u8, 255u8]))
27 .line_color(Rgb([100u8, 0u8, 0u8]))
28 .build();
29
30 renderer
31 .render(&system, &options)
32 .save("dragon_curve.png")
33 .expect("Failed to save to dragon_curve.png");
34}examples/fractal_binary_tree.rs (line 28)
8fn main() {
9 let mut builder = TurtleLSystemBuilder::new();
10
11 builder
12 .token("0", TurtleAction::Forward(50))
13 .token("1", TurtleAction::Forward(50))
14 .token("L", TurtleAction::Rotate(45))
15 .token("R", TurtleAction::Rotate(-45))
16 .token("[", TurtleAction::Push)
17 .token("]", TurtleAction::Pop)
18 .axiom("0")
19 .rule("1 => 1 1")
20 .rule("0 => 1 [ L 0 ] R 0")
21 .rotate(90);
22
23 let (mut system, renderer) = builder.finish();
24 system.step_by(9);
25
26 let options = ImageRendererOptionsBuilder::new()
27 .padding(20)
28 .thickness(5.5)
29 .fill_color(Rgb([255u8, 255u8, 255u8]))
30 .line_color(Rgb([0u8, 100u8, 100u8]))
31 .build();
32
33 renderer
34 .render(&system, &options)
35 .save("fractal_binary_tree.png")
36 .expect("Failed to save to fractal_binary_tree.png");
37}examples/fractal_plant.rs (line 26)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("X", TurtleAction::Nothing)
11 .token("F", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(25))
13 .token("-", TurtleAction::Rotate(-25))
14 .token("[", TurtleAction::Push)
15 .token("]", TurtleAction::Pop)
16 .axiom("X")
17 .rule("X => F + [ [ X ] - X ] - F [ - F X ] + X")
18 .rule("F => F F")
19 .rotate(70);
20
21 let (mut system, renderer) = builder.finish();
22 system.step_by(6);
23
24 let options = ImageRendererOptionsBuilder::new()
25 .padding(20)
26 .thickness(18.0)
27 .fill_color(Rgb([255u8, 255u8, 255u8]))
28 .line_color(Rgb([0u8, 100u8, 0u8]))
29 .build();
30
31 renderer
32 .render(&system, &options)
33 .save("fractal_plant.png")
34 .expect("Failed to save fractal_plant.png");
35}Additional examples can be found in:
Sourcepub fn fill_color(&mut self, fill_color: Rgb<u8>) -> &mut Self
pub fn fill_color(&mut self, fill_color: Rgb<u8>) -> &mut Self
Examples found in repository?
examples/koch_curve.rs (line 22)
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}More examples
examples/sierpinski_arrowhead.rs (line 24)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("A", TurtleAction::Forward(200))
11 .token("B", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(60))
13 .token("-", TurtleAction::Rotate(-60))
14 .axiom("A")
15 .rule("A => B - A - B")
16 .rule("B => A + B + A");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(15.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_arrowhead.png")
31 .expect("Failed to save to sierpinski_arrowhead.png");
32}examples/sierpinski_triangle.rs (line 24)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("F", TurtleAction::Forward(200))
11 .token("G", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(120))
13 .token("-", TurtleAction::Rotate(-120))
14 .axiom("F - G - G")
15 .rule("F => F - G + F + G - F")
16 .rule("G => G G");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(8.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_triangle.png")
31 .expect("Failed to save to sierpinski_triangle.png");
32}examples/dragon_curve.rs (line 26)
7fn main() {
8 let mut builder = TurtleLSystemBuilder::new();
9
10 builder
11 .token("X", TurtleAction::Nothing)
12 .token("Y", TurtleAction::Nothing)
13 .token("F", TurtleAction::Forward(30))
14 .token("+", TurtleAction::Rotate(-90))
15 .token("-", TurtleAction::Rotate(90))
16 .axiom("F X")
17 .rule("X => X + Y F +")
18 .rule("Y => - F X - Y");
19
20 let (mut system, renderer) = builder.finish();
21 system.step_by(15);
22
23 let options = ImageRendererOptionsBuilder::new()
24 .padding(10)
25 .thickness(8.0)
26 .fill_color(Rgb([255u8, 255u8, 255u8]))
27 .line_color(Rgb([100u8, 0u8, 0u8]))
28 .build();
29
30 renderer
31 .render(&system, &options)
32 .save("dragon_curve.png")
33 .expect("Failed to save to dragon_curve.png");
34}examples/fractal_binary_tree.rs (line 29)
8fn main() {
9 let mut builder = TurtleLSystemBuilder::new();
10
11 builder
12 .token("0", TurtleAction::Forward(50))
13 .token("1", TurtleAction::Forward(50))
14 .token("L", TurtleAction::Rotate(45))
15 .token("R", TurtleAction::Rotate(-45))
16 .token("[", TurtleAction::Push)
17 .token("]", TurtleAction::Pop)
18 .axiom("0")
19 .rule("1 => 1 1")
20 .rule("0 => 1 [ L 0 ] R 0")
21 .rotate(90);
22
23 let (mut system, renderer) = builder.finish();
24 system.step_by(9);
25
26 let options = ImageRendererOptionsBuilder::new()
27 .padding(20)
28 .thickness(5.5)
29 .fill_color(Rgb([255u8, 255u8, 255u8]))
30 .line_color(Rgb([0u8, 100u8, 100u8]))
31 .build();
32
33 renderer
34 .render(&system, &options)
35 .save("fractal_binary_tree.png")
36 .expect("Failed to save to fractal_binary_tree.png");
37}examples/fractal_plant.rs (line 27)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("X", TurtleAction::Nothing)
11 .token("F", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(25))
13 .token("-", TurtleAction::Rotate(-25))
14 .token("[", TurtleAction::Push)
15 .token("]", TurtleAction::Pop)
16 .axiom("X")
17 .rule("X => F + [ [ X ] - X ] - F [ - F X ] + X")
18 .rule("F => F F")
19 .rotate(70);
20
21 let (mut system, renderer) = builder.finish();
22 system.step_by(6);
23
24 let options = ImageRendererOptionsBuilder::new()
25 .padding(20)
26 .thickness(18.0)
27 .fill_color(Rgb([255u8, 255u8, 255u8]))
28 .line_color(Rgb([0u8, 100u8, 0u8]))
29 .build();
30
31 renderer
32 .render(&system, &options)
33 .save("fractal_plant.png")
34 .expect("Failed to save fractal_plant.png");
35}Additional examples can be found in:
Sourcepub fn line_color(&mut self, line_color: Rgb<u8>) -> &mut Self
pub fn line_color(&mut self, line_color: Rgb<u8>) -> &mut Self
Examples found in repository?
examples/koch_curve.rs (line 23)
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}More examples
examples/sierpinski_arrowhead.rs (line 25)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("A", TurtleAction::Forward(200))
11 .token("B", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(60))
13 .token("-", TurtleAction::Rotate(-60))
14 .axiom("A")
15 .rule("A => B - A - B")
16 .rule("B => A + B + A");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(15.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_arrowhead.png")
31 .expect("Failed to save to sierpinski_arrowhead.png");
32}examples/sierpinski_triangle.rs (line 25)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("F", TurtleAction::Forward(200))
11 .token("G", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(120))
13 .token("-", TurtleAction::Rotate(-120))
14 .axiom("F - G - G")
15 .rule("F => F - G + F + G - F")
16 .rule("G => G G");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(8.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_triangle.png")
31 .expect("Failed to save to sierpinski_triangle.png");
32}examples/dragon_curve.rs (line 27)
7fn main() {
8 let mut builder = TurtleLSystemBuilder::new();
9
10 builder
11 .token("X", TurtleAction::Nothing)
12 .token("Y", TurtleAction::Nothing)
13 .token("F", TurtleAction::Forward(30))
14 .token("+", TurtleAction::Rotate(-90))
15 .token("-", TurtleAction::Rotate(90))
16 .axiom("F X")
17 .rule("X => X + Y F +")
18 .rule("Y => - F X - Y");
19
20 let (mut system, renderer) = builder.finish();
21 system.step_by(15);
22
23 let options = ImageRendererOptionsBuilder::new()
24 .padding(10)
25 .thickness(8.0)
26 .fill_color(Rgb([255u8, 255u8, 255u8]))
27 .line_color(Rgb([100u8, 0u8, 0u8]))
28 .build();
29
30 renderer
31 .render(&system, &options)
32 .save("dragon_curve.png")
33 .expect("Failed to save to dragon_curve.png");
34}examples/fractal_binary_tree.rs (line 30)
8fn main() {
9 let mut builder = TurtleLSystemBuilder::new();
10
11 builder
12 .token("0", TurtleAction::Forward(50))
13 .token("1", TurtleAction::Forward(50))
14 .token("L", TurtleAction::Rotate(45))
15 .token("R", TurtleAction::Rotate(-45))
16 .token("[", TurtleAction::Push)
17 .token("]", TurtleAction::Pop)
18 .axiom("0")
19 .rule("1 => 1 1")
20 .rule("0 => 1 [ L 0 ] R 0")
21 .rotate(90);
22
23 let (mut system, renderer) = builder.finish();
24 system.step_by(9);
25
26 let options = ImageRendererOptionsBuilder::new()
27 .padding(20)
28 .thickness(5.5)
29 .fill_color(Rgb([255u8, 255u8, 255u8]))
30 .line_color(Rgb([0u8, 100u8, 100u8]))
31 .build();
32
33 renderer
34 .render(&system, &options)
35 .save("fractal_binary_tree.png")
36 .expect("Failed to save to fractal_binary_tree.png");
37}examples/fractal_plant.rs (line 28)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("X", TurtleAction::Nothing)
11 .token("F", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(25))
13 .token("-", TurtleAction::Rotate(-25))
14 .token("[", TurtleAction::Push)
15 .token("]", TurtleAction::Pop)
16 .axiom("X")
17 .rule("X => F + [ [ X ] - X ] - F [ - F X ] + X")
18 .rule("F => F F")
19 .rotate(70);
20
21 let (mut system, renderer) = builder.finish();
22 system.step_by(6);
23
24 let options = ImageRendererOptionsBuilder::new()
25 .padding(20)
26 .thickness(18.0)
27 .fill_color(Rgb([255u8, 255u8, 255u8]))
28 .line_color(Rgb([0u8, 100u8, 0u8]))
29 .build();
30
31 renderer
32 .render(&system, &options)
33 .save("fractal_plant.png")
34 .expect("Failed to save fractal_plant.png");
35}Additional examples can be found in:
Sourcepub fn build(&mut self) -> ImageRendererOptions
pub fn build(&mut self) -> ImageRendererOptions
Examples found in repository?
examples/koch_curve.rs (line 24)
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}More examples
examples/sierpinski_arrowhead.rs (line 26)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("A", TurtleAction::Forward(200))
11 .token("B", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(60))
13 .token("-", TurtleAction::Rotate(-60))
14 .axiom("A")
15 .rule("A => B - A - B")
16 .rule("B => A + B + A");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(15.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_arrowhead.png")
31 .expect("Failed to save to sierpinski_arrowhead.png");
32}examples/sierpinski_triangle.rs (line 26)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("F", TurtleAction::Forward(200))
11 .token("G", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(120))
13 .token("-", TurtleAction::Rotate(-120))
14 .axiom("F - G - G")
15 .rule("F => F - G + F + G - F")
16 .rule("G => G G");
17
18 let (mut system, renderer) = builder.finish();
19 system.step_by(7);
20
21 let options = ImageRendererOptionsBuilder::new()
22 .padding(20)
23 .thickness(8.0)
24 .fill_color(Rgb([255u8, 255u8, 255u8]))
25 .line_color(Rgb([0u8, 100u8, 0u8]))
26 .build();
27
28 renderer
29 .render(&system, &options)
30 .save("sierpinski_triangle.png")
31 .expect("Failed to save to sierpinski_triangle.png");
32}examples/dragon_curve.rs (line 28)
7fn main() {
8 let mut builder = TurtleLSystemBuilder::new();
9
10 builder
11 .token("X", TurtleAction::Nothing)
12 .token("Y", TurtleAction::Nothing)
13 .token("F", TurtleAction::Forward(30))
14 .token("+", TurtleAction::Rotate(-90))
15 .token("-", TurtleAction::Rotate(90))
16 .axiom("F X")
17 .rule("X => X + Y F +")
18 .rule("Y => - F X - Y");
19
20 let (mut system, renderer) = builder.finish();
21 system.step_by(15);
22
23 let options = ImageRendererOptionsBuilder::new()
24 .padding(10)
25 .thickness(8.0)
26 .fill_color(Rgb([255u8, 255u8, 255u8]))
27 .line_color(Rgb([100u8, 0u8, 0u8]))
28 .build();
29
30 renderer
31 .render(&system, &options)
32 .save("dragon_curve.png")
33 .expect("Failed to save to dragon_curve.png");
34}examples/fractal_binary_tree.rs (line 31)
8fn main() {
9 let mut builder = TurtleLSystemBuilder::new();
10
11 builder
12 .token("0", TurtleAction::Forward(50))
13 .token("1", TurtleAction::Forward(50))
14 .token("L", TurtleAction::Rotate(45))
15 .token("R", TurtleAction::Rotate(-45))
16 .token("[", TurtleAction::Push)
17 .token("]", TurtleAction::Pop)
18 .axiom("0")
19 .rule("1 => 1 1")
20 .rule("0 => 1 [ L 0 ] R 0")
21 .rotate(90);
22
23 let (mut system, renderer) = builder.finish();
24 system.step_by(9);
25
26 let options = ImageRendererOptionsBuilder::new()
27 .padding(20)
28 .thickness(5.5)
29 .fill_color(Rgb([255u8, 255u8, 255u8]))
30 .line_color(Rgb([0u8, 100u8, 100u8]))
31 .build();
32
33 renderer
34 .render(&system, &options)
35 .save("fractal_binary_tree.png")
36 .expect("Failed to save to fractal_binary_tree.png");
37}examples/fractal_plant.rs (line 29)
6fn main() {
7 let mut builder = TurtleLSystemBuilder::new();
8
9 builder
10 .token("X", TurtleAction::Nothing)
11 .token("F", TurtleAction::Forward(200))
12 .token("+", TurtleAction::Rotate(25))
13 .token("-", TurtleAction::Rotate(-25))
14 .token("[", TurtleAction::Push)
15 .token("]", TurtleAction::Pop)
16 .axiom("X")
17 .rule("X => F + [ [ X ] - X ] - F [ - F X ] + X")
18 .rule("F => F F")
19 .rotate(70);
20
21 let (mut system, renderer) = builder.finish();
22 system.step_by(6);
23
24 let options = ImageRendererOptionsBuilder::new()
25 .padding(20)
26 .thickness(18.0)
27 .fill_color(Rgb([255u8, 255u8, 255u8]))
28 .line_color(Rgb([0u8, 100u8, 0u8]))
29 .build();
30
31 renderer
32 .render(&system, &options)
33 .save("fractal_plant.png")
34 .expect("Failed to save fractal_plant.png");
35}Additional examples can be found in:
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ImageRendererOptionsBuilder
impl RefUnwindSafe for ImageRendererOptionsBuilder
impl Send for ImageRendererOptionsBuilder
impl Sync for ImageRendererOptionsBuilder
impl Unpin for ImageRendererOptionsBuilder
impl UnwindSafe for ImageRendererOptionsBuilder
Blanket Implementations§
Source§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
Source§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
Convert the given value into an approximately equivalent representation.
Source§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
Source§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
The error type produced by a failed conversion.
Source§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Convert the subject into an approximately equivalent representation.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
Source§impl<T> ConvUtil for T
impl<T> ConvUtil for T
Source§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
Approximate the subject to a given type with the default scheme.
Source§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
Approximate the subject to a given type with a specific scheme.
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more