①(0〜359度の)正の角度変換(Numeric#modulo版)
def positive_angle(angle)
angle.modulo(360)
end
②(0〜359度の)正の角度変換(Numeric#remainder版)
def positive_angle_by_remainder(angle)
(angle.remainder(360) + 360).remainder(360)
end
③余談:-359〜359度の角度変換
def angle_by_remainder(angle)
angle.remainder(360)
end
変換結果
角度 | ① | ② | ③ |
---|---|---|---|
-720 | 0 | 0 | 0 |
-630 | 90 | 90 | -270 |
-540 | 180 | 180 | -180 |
-450 | 270 | 270 | -90 |
-360 | 0 | 0 | 0 |
-270 | 90 | 90 | -270 |
-180 | 180 | 180 | -180 |
-90 | 270 | 270 | -90 |
0 | 0 | 0 | 0 |
90 | 90 | 90 | 90 |
180 | 180 | 180 | 180 |
270 | 270 | 270 | 270 |
360 | 0 | 0 | 0 |
450 | 90 | 90 | 90 |
540 | 180 | 180 | 180 |
630 | 270 | 270 | 270 |
720 | 0 | 0 | 0 |