use core::f32::consts::TAU;
use bevy_math::{ops, Vec2};
pub(crate) fn single_circle_coordinate(radius: f32, resolution: u32, nth_point: u32) -> Vec2 {
let angle = nth_point as f32 * TAU / resolution as f32;
let (x, y) = ops::sin_cos(angle);
Vec2::new(x, y) * radius
}
pub(crate) fn circle_coordinates(radius: f32, resolution: u32) -> impl Iterator<Item = Vec2> {
(0..)
.map(move |p| single_circle_coordinate(radius, resolution, p))
.take(resolution as usize)
}
pub(crate) fn circle_coordinates_closed(
radius: f32,
resolution: u32,
) -> impl Iterator<Item = Vec2> {
circle_coordinates(radius, resolution).chain(core::iter::once(single_circle_coordinate(
radius, resolution, resolution,
)))
}