From ab5446385b5877a080338758e8bc9e7514661d97 Mon Sep 17 00:00:00 2001 From: numzero Date: Mon, 10 Jun 2024 00:10:31 +0300 Subject: [PATCH] Smoother circles --- src/bin/flat.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bin/flat.rs b/src/bin/flat.rs index f4e2f85..518b421 100644 --- a/src/bin/flat.rs +++ b/src/bin/flat.rs @@ -65,6 +65,7 @@ pub fn main() { draw_track(gc, &space, vec2(-500.0, 0.0), vec2(1.0, 0.5)); draw_track(gc, &space, vec2(-0.5 * tube.inner_radius, -1.25 * tube.external_halflength), vec2(0.1, 1.0)); + let circle_segments = 47; for obj in &space.objs { let pos = obj.loc.pos; gc.new_path(); @@ -73,19 +74,19 @@ pub fn main() { gc.fill(); gc.stroke_color(Color::Rgba(0.0, 0.0, 0.0, 0.5)); - draw_loop(gc, itertools_num::linspace(0.0, 2.0 * PI, 32).skip(1).map(|φ| { + draw_loop(gc, itertools_num::linspace(0.0, 2.0 * PI, circle_segments).skip(1).map(|φ| { let dir = Vec2::from_angle(φ) * obj.r; let dir = obj.loc.rot * dir; pos + dir })); gc.stroke_color(Color::Rgba(0.0, 0.5, 1.0, 0.5)); - draw_loop(gc, itertools_num::linspace(0.0, 2.0 * PI, 32).skip(1).map(|φ| { + draw_loop(gc, itertools_num::linspace(0.0, 2.0 * PI, circle_segments).skip(1).map(|φ| { let dir = Vec2::from_angle(φ) * obj.r; let dir = obj.loc.rot * dir; space.trace_step(Ray { pos, dir }).pos })); gc.stroke_color(Color::Rgba(0.5, 0.0, 1.0, 1.0)); - draw_loop(gc, itertools_num::linspace(0.0, 2.0 * PI, 32).skip(1).map(|φ| { + draw_loop(gc, itertools_num::linspace(0.0, 2.0 * PI, circle_segments).skip(1).map(|φ| { let n = obj.r.floor(); let d = obj.r / n; let dir = Vec2::from_angle(φ);