simplify 0.1.2

simplify-js port to rust
Documentation
  • Coverage
  • 0%
    0 out of 13 items documented0 out of 12 items with examples
  • Size
  • Source code size: 67.83 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.55 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 11s Average build duration of successful builds.
  • all releases: 11s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • GopherJ

simplify.rs

port of simplify-js

Installation

cargo add simplify

Usage

use simplify::{Point as P, Simplify}; 

#[derive(Clone, Debug)]
pub struct Point {
    pub x: f64,
    pub y: f64
}

impl P for Point {
    fn x(&self) -> f64 {
        self.x 
    }

    fn y(&self) ->f64 {
        self.y
    }
}

let mut data = vec![
    Point {x:224.55,y:250.15},Point {x:226.91,y:244.19},Point {x:233.31,y:241.45},Point {x:234.98,y:236.06},
    Point {x:244.21,y:232.76},Point {x:262.59,y:215.31},Point {x:267.76,y:213.81},Point {x:273.57,y:201.84},
    Point {x:273.12,y:192.16},Point {x:277.62,y:189.03},Point {x:280.36,y:181.41},Point {x:286.51,y:177.74},
    Point {x:292.41,y:159.37},Point {x:296.91,y:155.64},Point {x:314.95,y:151.37},Point {x:319.75,y:145.16},
    Point {x:330.33,y:137.57},Point {x:341.48,y:139.96},Point {x:369.98,y:137.89},Point {x:387.39,y:142.51},
    Point {x:391.28,y:139.39},Point {x:409.52,y:141.14},Point {x:414.82,y:139.75},Point {x:427.72,y:127.30},
    Point {x:439.60,y:119.74},Point {x:474.93,y:107.87},Point {x:486.51,y:106.75},Point {x:489.20,y:109.45},
];

let mut s = Simplify::new(&mut data);
s.set_tolerance(5f64);

println!("{:?}", s.run());