This commit is contained in:
parent
9377daef9c
commit
5ca0021533
2 changed files with 1 additions and 37 deletions
|
@ -44,29 +44,6 @@ fn generate_colors(rng: &mut ThreadRng) -> (Color, Color) {
|
||||||
(Color::from_hex(c1), Color::from_hex(c2))
|
(Color::from_hex(c1), Color::from_hex(c2))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn draw_polygon(
|
|
||||||
center: (f64, f64),
|
|
||||||
side_length: f64,
|
|
||||||
num_sides: i32,
|
|
||||||
context: &Context,
|
|
||||||
) -> Result<(), cairo::Error> {
|
|
||||||
let mut rng = rand::thread_rng();
|
|
||||||
let (c1, _) = generate_colors(&mut rng);
|
|
||||||
set_color(c1, context);
|
|
||||||
context.new_path();
|
|
||||||
|
|
||||||
let corners = calculate_polygon_corners(center, num_sides, side_length, 30.0);
|
|
||||||
|
|
||||||
for (x, y) in corners {
|
|
||||||
context.line_to(x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
context.close_path();
|
|
||||||
context.fill()?;
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn draw_segmented_polygon(
|
pub fn draw_segmented_polygon(
|
||||||
center: (f64, f64),
|
center: (f64, f64),
|
||||||
side_length: f64,
|
side_length: f64,
|
||||||
|
@ -121,16 +98,3 @@ pub fn draw_polygon_of_segmented_polygons(
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn draw_polygon_of_polygons(
|
|
||||||
center: (f64, f64),
|
|
||||||
radius: f64,
|
|
||||||
num_sides: i32,
|
|
||||||
context: &Context,
|
|
||||||
) -> Result<(), cairo::Error> {
|
|
||||||
let corners = calculate_polygon_corners(center, num_sides, radius, 0.0);
|
|
||||||
for corner in corners {
|
|
||||||
draw_polygon(corner, radius * 0.4, num_sides, &context)?;
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ async fn handler() -> impl axum::response::IntoResponse {
|
||||||
context.set_source_rgba(0.0, 0.0, 0.0, 0.0);
|
context.set_source_rgba(0.0, 0.0, 0.0, 0.0);
|
||||||
context.fill().unwrap();
|
context.fill().unwrap();
|
||||||
|
|
||||||
polygon::draw_polygon_of_polygons((50.0, 50.0), 65.0, 6, &context).unwrap();
|
polygon::draw_polygon_of_segmented_polygons((50.0, 50.0), 37.0, 16.75, 6, &context).unwrap();
|
||||||
|
|
||||||
let mut data: Vec<u8> = Vec::new();
|
let mut data: Vec<u8> = Vec::new();
|
||||||
surface.write_to_png(&mut data).unwrap();
|
surface.write_to_png(&mut data).unwrap();
|
||||||
|
|
Loading…
Reference in a new issue