2016/02/21 公開
・角度の正規化
ここでは、与えられた任意の角度を0°から360°に収めるメソッドの作り方を説明します。
以下がその変換例で、0~360°の範囲外の角度を0~360°の中に収めています。
変換例)
角度 400°→ 40°
角度 720°→ 0°
角度 -50°→ 310°
それでは、メソッドの作り方を説明します。
角度の360°は一回転することなので、0°と360°とは同じ角度となります。よって、与えられた角度がプラスの場合、角度を360°で割った余りを求めることで角度を0~360°の範囲に収めることができます。また、角度がマイナスの場合は、360°で割った余りに360°を足すことで、角度を0~360°の範囲に収めることができます。
例えば、与えられた角度が400°の場合、400=360x1+40と書き直せるので40°となります。-50°場合、-50=360x0-50と書き直せます。さらに-50に360を足して310°となります。
以下のJavaソースコードのgetDegreeメソッドが、角度degを引数として渡し、0~360°の範囲に変換した角度を戻すメソッドです。
Degrees.java ← クリックしてダウンロードページに移動
001: public class Degrees { 002: public static void main( String[] args ) { 003: double deg; 004: 005: // 750° 006: deg = 750.0; 007: System.out.println( deg + "度 → " + getDegree( deg ) + "度" ); 008: 009: // 7200° 010: deg = 7200.0; 011: System.out.println( deg + "度 → " + getDegree( deg ) + "度" ); 012: 013: // -340° 014: deg = -340.0; 015: System.out.println( deg + "度 → " + getDegree( deg ) + "度" ); 016: 017: // -140° 018: deg = -140.0; 019: System.out.println( deg + "度 → " + getDegree( deg ) + "度" ); 020: } 021: 022: 023: // °単位の角度を0~360の範囲に収める 024: private static double getDegree( double deg ) 025: { 026: // 360で割ったあまりを求める 027: deg = deg % 360.0; 028: 029: // マイナスだったら360を足す 030: if ( 0.0 > deg ) 031: deg += 360.0; 032: 033: return deg; 034: } 035: }
Degreesを実行
C:\talavax\javasample>java Degees
Degreesの出力結果
750.0度 → 30.0度 7200.0度 → 0.0度 -340.0度 → 20.0度 -140.0度 → 220.0度
■関連コンテンツ
ラジアン←→角度 変換 | 角度、ラジアンの相互変換について解説 |
値のコンソール表示 | print()、println()とは? |
return文 | メソッドの戻り値 |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告