Skip to main content

triangles/
triangles.rs

1use std::f64::consts::PI;
2
3use ab_glyph::FontArc;
4use glam::DVec2;
5use palette::Srgba;
6use render_agnostic::{
7    Renderer, image_registries::image_image_registry::ImageImageRegistry,
8    renderers::image::ImageRenderer,
9};
10
11fn main() {
12    let mut image_renderer = ImageRenderer::new(
13        64,
14        64,
15        1.0,
16        DVec2::ZERO,
17        4,
18        FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
19        ImageImageRegistry::default(),
20    );
21
22    image_renderer.render_equilateral_triangle(
23        DVec2::splat(16.0),
24        16.0,
25        0.0,
26        Srgba::new(1.0, 1.0, 1.0, 1.0),
27    );
28
29    image_renderer.render_equilateral_triangle(
30        DVec2::splat(16.0),
31        16.0,
32        PI,
33        Srgba::new(1.0, 0.0, 0.0, 1.0),
34    );
35
36    image_renderer.render_equilateral_triangle_lines(
37        DVec2::splat(48.0),
38        16.0,
39        0.0,
40        2.0,
41        Srgba::new(0.0, 0.0, 1.0, 1.0),
42    );
43
44    image_renderer.render_equilateral_triangle_lines(
45        DVec2::splat(48.0),
46        16.0,
47        PI,
48        2.0,
49        Srgba::new(0.0, 1.0, 0.0, 1.0),
50    );
51
52    image_renderer
53        .render_image_onto(image_renderer.black())
54        .save("triangles.png")
55        .unwrap();
56}