ゆるゆるプログラミング

・角度の正規化

ここでは、与えられた任意の角度を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度

■関連コンテンツ

ラジアン←→角度 変換 角度、ラジアンの相互変換について解説

■新着情報

2019.09.13 長さの単位変換 1マイル、1フィートは何m?
2019.09.06 クイックソート 高速に配列に並び替える方法
2019.09.05 中央値(メディアン) 配列に格納されている値の中央値を求める
2019.09.05 最頻値 配列から出現回数が最も多い値の取得
2019.09.03 配列値の反転 配列の反転処理
2019.08.05 トランプの操作 トランプを操作するクラス

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

Topへ