Smoother circles
This commit is contained in:
parent
b22c36a983
commit
ab5446385b
|
|
@ -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(-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));
|
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 {
|
for obj in &space.objs {
|
||||||
let pos = obj.loc.pos;
|
let pos = obj.loc.pos;
|
||||||
gc.new_path();
|
gc.new_path();
|
||||||
|
|
@ -73,19 +74,19 @@ pub fn main() {
|
||||||
gc.fill();
|
gc.fill();
|
||||||
|
|
||||||
gc.stroke_color(Color::Rgba(0.0, 0.0, 0.0, 0.5));
|
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 = Vec2::from_angle(φ) * obj.r;
|
||||||
let dir = obj.loc.rot * dir;
|
let dir = obj.loc.rot * dir;
|
||||||
pos + dir
|
pos + dir
|
||||||
}));
|
}));
|
||||||
gc.stroke_color(Color::Rgba(0.0, 0.5, 1.0, 0.5));
|
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 = Vec2::from_angle(φ) * obj.r;
|
||||||
let dir = obj.loc.rot * dir;
|
let dir = obj.loc.rot * dir;
|
||||||
space.trace_step(Ray { pos, dir }).pos
|
space.trace_step(Ray { pos, dir }).pos
|
||||||
}));
|
}));
|
||||||
gc.stroke_color(Color::Rgba(0.5, 0.0, 1.0, 1.0));
|
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 n = obj.r.floor();
|
||||||
let d = obj.r / n;
|
let d = obj.r / n;
|
||||||
let dir = Vec2::from_angle(φ);
|
let dir = Vec2::from_angle(φ);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user