Crate bracket_geometry
source · [−]Expand description
This crate is part of the bracket-lib
family.
It provides point (2D and 3D), rectangle, line and circle plotting functionality.
It uses UltraViolet behind the scenes for very fast calculations. If you enable the
serde
feature flag, it implements serialization/deserialization of the primitive types.
For example:
use bracket_geometry::prelude::*;
let my_point = Point::new(5,6);
println!("{:?}", my_point);
use bracket_geometry::prelude::*;
let my_point3 = Point3::new(5,6,7);
println!("{:?}", my_point3);
use bracket_geometry::prelude::*;
let my_rect = Rect::with_size(1, 1, 10, 10);
let center = my_rect.center();
println!("{:?}", center);
Line examples:
use bracket_geometry::prelude::*;
let bresenham_line = line2d(LineAlg::Bresenham, Point::new(1,1), Point::new(5,5));
println!("{:?}", bresenham_line);
use bracket_geometry::prelude::*;
for point in Bresenham::new(Point::new(1,1), Point::new(5,5)) {
println!("{:?}", point);
}
Circle example:
use bracket_geometry::prelude::*;
for point in BresenhamCircle::new(Point::new(10,10), 5) {
println!("{:?}", point);
}
Distance examples:
use bracket_geometry::prelude::*;
println!("{:?}", DistanceAlg::Pythagoras.distance2d(Point::new(0,0), Point::new(5,5)));
println!("{:?}", DistanceAlg::PythagorasSquared.distance2d(Point::new(0,0), Point::new(5,5)));
println!("{:?}", DistanceAlg::Manhattan.distance2d(Point::new(0,0), Point::new(5,5)));
println!("{:?}", DistanceAlg::Chebyshev.distance2d(Point::new(0,0), Point::new(5,5)));
Modules
Export the library into a prelude for convenience. See the main library declaration.