From 316286b8b65ac5a7abf5117dc942a70b94e1be53 Mon Sep 17 00:00:00 2001 From: brian cully Date: Mon, 29 Dec 2025 12:50:01 -0500 Subject: bench with poly finding --- src/lib.rs | 10 ++++++++++ src/state.rs | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index dfbeaae..8e650e5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -118,6 +118,16 @@ pub fn init() -> JSResult<()> { let perf = window().performance().unwrap(); let start = perf.now(); for _ in 0..iters { + s.points.sort_by(|a, b| { + if a.y > b.y { + std::cmp::Ordering::Greater + } else if a.y == b.y { + std::cmp::Ordering::Equal + } else { + std::cmp::Ordering::Less + } + }); + s.find_poly(); s.update()?; } let end = perf.now(); diff --git a/src/state.rs b/src/state.rs index 09120fb..592f26e 100644 --- a/src/state.rs +++ b/src/state.rs @@ -19,7 +19,7 @@ pub struct State { canvas: HtmlCanvasElement, ctx: CanvasRenderingContext2d, fps: HtmlElement, - points: Vec, + pub points: Vec, last_time: Option, inter_count: u16, } @@ -124,7 +124,7 @@ impl State { Ok(()) } - fn find_poly(&self) -> Vec<&Point> { + pub fn find_poly(&self) -> Vec<&Point> { let p1 = Point::new(0.0, 0.0); let p2 = Point::new(1.0, 0.0); let mut last_line = Line::new(&p1, &p2); -- cgit v1.3