valora 0.2.12

A brush for generative fine art.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! Rotation

use crate::{Angle, Ellipse, P2};

pub trait Rotate {
    fn rotate(self, pivot: P2, theta: Angle) -> Self;
}

impl Rotate for P2 {
    fn rotate(self, pivot: P2, theta: Angle) -> Self {
        let radius = (self - pivot).length();
        let current = Ellipse::circle(pivot, radius);
        let current_theta = current.circumphase(&self);

        current.circumpoint(current_theta + theta)
    }
}