Commit 35ec5d3614fc67cb13acb1bf1b1d9556cf8c32ab
1 parent
28eea9b4
Fix sin and cos handling for negative degrees
Showing
1 changed file
with
9 additions
and
3 deletions
| ... | ... | @@ -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