Commit 35ec5d3614fc67cb13acb1bf1b1d9556cf8c32ab

Authored by Georg Hopp
1 parent 28eea9b4

Fix sin and cos handling for negative degrees

@@ -45,7 +45,9 @@ pub trait Trig { @@ -45,7 +45,9 @@ pub trait Trig {
45 91 ..=180 => Self::sintab()[180 - d as usize], 45 91 ..=180 => Self::sintab()[180 - d as usize],
46 181..=270 => -Self::sintab()[d as usize - 180], 46 181..=270 => -Self::sintab()[d as usize - 180],
47 271..=359 => -Self::sintab()[360 - d as usize], 47 271..=359 => -Self::sintab()[360 - d as usize],
48 - _ => Self::sin(d % 360), 48 + _ => {
  49 + Self::sin(if d < 0 { d % 360 + 360 } else { d % 360 })
  50 + },
49 } 51 }
50 } 52 }
51 53
@@ -56,7 +58,9 @@ pub trait Trig { @@ -56,7 +58,9 @@ pub trait Trig {
56 91 ..=180 => -Self::sintab()[90 - (180 - d as usize)], 58 91 ..=180 => -Self::sintab()[90 - (180 - d as usize)],
57 181..=270 => -Self::sintab()[90 - (d as usize - 180)], 59 181..=270 => -Self::sintab()[90 - (d as usize - 180)],
58 271..=359 => Self::sintab()[90 - (360 - d as usize)], 60 271..=359 => Self::sintab()[90 - (360 - d as usize)],
59 - _ => Self::cos(d % 360), 61 + _ => {
  62 + Self::cos(if d < 0 { d % 360 + 360 } else { d % 360 })
  63 + },
60 } 64 }
61 } 65 }
62 66
@@ -64,7 +68,9 @@ pub trait Trig { @@ -64,7 +68,9 @@ pub trait Trig {
64 match d { 68 match d {
65 0 ..=179 => Self::tantab()[d as usize], 69 0 ..=179 => Self::tantab()[d as usize],
66 180..=359 => Self::tantab()[d as usize - 180], 70 180..=359 => Self::tantab()[d as usize - 180],
67 - _ => Self::tan(d % 360), 71 + _ => {
  72 + Self::tan(if d < 0 { d % 360 + 360 } else { d % 360 })
  73 + },
68 } 74 }
69 } 75 }
70 } 76 }
Please register or login to post a comment