X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcommon.rs;h=1cf205eea8758fa4eff764ab46ba244110970d2f;hb=eb253fcc25b0af3ec7b804ea8e1b73426564883b;hp=0d829031db54810377dd23f1599b6212b6346753;hpb=eca2559123ae3c7ef184bf42ec60680fcddb38f6;p=kaka%2Frust-sdl-test.git diff --git a/src/common.rs b/src/common.rs index 0d82903..1cf205e 100644 --- a/src/common.rs +++ b/src/common.rs @@ -18,7 +18,7 @@ impl Point2D { ((self.x * self.x) + (self.y * self.y)).sqrt() } - pub fn normalize(&self) -> Self { + pub fn normalized(&self) -> Self { let l = self.length(); Self { x: self.x / l, @@ -26,12 +26,12 @@ impl Point2D { } } - pub fn radians(&self) -> Radians { + pub fn to_radians(&self) -> Radians { Radians(self.y.atan2(self.x)) } - pub fn degrees(&self) -> Degrees { - self.radians().to_degrees() + pub fn to_degrees(&self) -> Degrees { + self.to_radians().to_degrees() } pub fn to_i32(self) -> Point2D { @@ -145,9 +145,10 @@ impl From> for (T, T) { impl From for Point2D { fn from(item: Degrees) -> Self { + let r = item.0.to_radians(); Point2D { - x: (item.0 * std::f64::consts::PI / 180.0).cos(), - y: (item.0 * std::f64::consts::PI / 180.0).sin(), + x: r.cos(), + y: r.sin(), } } } @@ -169,14 +170,14 @@ pub struct Radians(pub f64); impl Degrees { #[allow(dead_code)] fn to_radians(&self) -> Radians { - Radians(self.0 * std::f64::consts::PI / 180.0) + Radians(self.0.to_radians()) } } impl Radians { #[allow(dead_code)] fn to_degrees(&self) -> Degrees { - Degrees(self.0 * 180.0 * std::f64::consts::FRAC_1_PI) + Degrees(self.0.to_degrees()) } }