Skip to main content

circles/
circles.rs

1use std::f64::consts::{PI, TAU};
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        0.8,
16        DVec2::splat(0.5),
17        1,
18        FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
19        ImageImageRegistry::default(),
20    );
21
22    image_renderer.render_circle(DVec2::splat(16.0), 16.0, Srgba::new(1.0, 1.0, 1.0, 1.0));
23
24    image_renderer.render_circle_lines(
25        DVec2::splat(48.0),
26        16.0,
27        2.0,
28        Srgba::new(0.0, 0.0, 1.0, 1.0),
29    );
30
31    image_renderer.render_arc(
32        DVec2::splat(32.0),
33        16.0,
34        0.0,
35        64,
36        PI,
37        Srgba::new(1.0, 0.0, 0.0, 1.0),
38    );
39
40    image_renderer.render_arc_lines(
41        DVec2::splat(32.0),
42        16.0,
43        PI,
44        64,
45        PI,
46        2.0,
47        Srgba::new(0.0, 1.0, 0.0, 1.0),
48    );
49
50    image_renderer.render_arc_lines(
51        DVec2::splat(32.0),
52        23.0 * 0.6,
53        0.75 * TAU,
54        64,
55        0.0,
56        23.0 * 0.2,
57        Srgba::new(0.0, 1.0, 1.0, 1.0),
58    );
59
60    image_renderer
61        .render_image_onto(image_renderer.black())
62        .save("circles.png")
63        .unwrap();
64}