circles/
circles.rs

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