Trait geo::algorithm::rotate::RotatePoint [] [src]

pub trait RotatePoint<T> {
    fn rotate_around_point(&self, angle: T, point: &Point<T>) -> Self
    where
        T: Float
; }

Required Methods

Rotate a Geometry around an arbitrary point by an angle, given in degrees

Positive angles are counter-clockwise, and negative angles are clockwise rotations.

use geo::{Point, LineString};
use geo::algorithm::rotate::{RotatePoint};

let mut vec = Vec::new();
vec.push(Point::new(0.0, 0.0));
vec.push(Point::new(5.0, 5.0));
vec.push(Point::new(10.0, 10.0));
let linestring = LineString(vec);
let rotated = linestring.rotate_around_point(-45.0, &Point::new(10.0, 0.0));
let mut correct = Vec::new();
correct.push(Point::new(2.9289321881345245, 7.071067811865475));
correct.push(Point::new(10.0, 7.0710678118654755));
correct.push(Point::new(17.071067811865476, 7.0710678118654755));
let correct_ls = LineString(correct);
assert_eq!(rotated, correct_ls);

Implementors