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        1.0,
13        DVec2::ZERO,
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        PI,
32        Srgba::new(1.0, 0.0, 0.0, 1.0),
33    );
34
35    image_renderer.render_arc_lines(
36        DVec2::splat(32.0),
37        16.0,
38        PI,
39        PI,
40        2.0,
41        Srgba::new(0.0, 1.0, 0.0, 1.0),
42    );
43
44    image_renderer.render_arc_lines(
45        DVec2::splat(32.0),
46        23.0 * 0.6,
47        0.75 * TAU,
48        0.0,
49        23.0 * 0.2,
50        Srgba::new(0.0, 1.0, 1.0, 1.0),
51    );
52
53    image_renderer
54        .render_image_onto(image_renderer.black())
55        .save("circles.png")
56        .unwrap();
57}