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 45 91 ..=180 => Self::sintab()[180 - d as usize],
46 46 181..=270 => -Self::sintab()[d as usize - 180],
47 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 58 91 ..=180 => -Self::sintab()[90 - (180 - d as usize)],
57 59 181..=270 => -Self::sintab()[90 - (d as usize - 180)],
58 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 68 match d {
65 69 0 ..=179 => Self::tantab()[d as usize],
66 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