From 1d19ad7968549338b27229df202b4fbd0969c2f9 Mon Sep 17 00:00:00 2001 From: numzero Date: Mon, 29 Apr 2024 01:14:48 +0300 Subject: [PATCH] Simplify rect properties --- src/bin/flat.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/bin/flat.rs b/src/bin/flat.rs index 41a82ef..f649fe1 100644 --- a/src/bin/flat.rs +++ b/src/bin/flat.rs @@ -12,8 +12,7 @@ pub fn main() { }; let space = Rect { scale: 3.0, - a: vec2(- 30.0, - 300.0), - b: vec2(30.0, 300.0), + r: vec2(30.0, 300.0), m: vec2(20.0, 50.0), }; with_2d_graphics(move || { @@ -71,8 +70,8 @@ impl Renderable for Coil { impl Renderable for Rect { fn render(&self, gc: &mut Vec) { gc.new_path(); - gc.rect(self.a.x - self.m.x, self.a.y - self.m.y, self.b.x + self.m.x, self.b.y + self.m.y); - gc.rect(self.a.x, self.a.y, self.b.x, self.b.y); + gc.rect(-self.r.x - self.m.x, -self.r.y - self.m.y, self.r.x + self.m.x, self.r.y + self.m.y); + gc.rect(-self.r.x, -self.r.y, self.r.x, self.r.y); gc.winding_rule(WindingRule::EvenOdd); gc.fill_color(Color::Rgba(0.8, 0.8, 0.8, 1.0)); gc.fill(); @@ -80,7 +79,7 @@ impl Renderable for Rect { gc.stroke_color(Color::Rgba(1.0, 0.5, 0.0, 1.0)); draw_fan(gc, self, vec2(-500.0, 0.0), vec2(1.0, 0.0), 1.0); gc.stroke_color(Color::Rgba(0.0, 0.5, 1.0, 1.0)); - draw_fan(gc, self, vec2(0.0, 0.5 * self.a.y), vec2(1.0, 1.0), 1.0); + draw_fan(gc, self, vec2(0.0, -0.5 * self.r.y), vec2(1.0, 1.0), 1.0); } } @@ -110,15 +109,14 @@ impl Metric for Coil { } struct Rect { - scale: f32, - a: Vec2, - b: Vec2, - m: Vec2, + scale: f32, + r: Vec2, + m: Vec2, } impl Metric for Rect { fn halfmetric(&self, pos: Vec2) -> Decomp2 { - let s = smoothbox(pos.x, vec2(self.a.x, self.b.x), self.m.x) * smoothbox(pos.y, vec2(self.a.y, self.b.y), self.m.y); + let s = smoothbox(pos.x, vec2(-self.r.x, self.r.x), self.m.x) * smoothbox(pos.y, vec2(-self.r.y, self.r.y), self.m.y); Decomp2{ ortho: Mat2::IDENTITY, diag: vec2(1.0, self.scale.powf(-s)),