Javaプログラミング学習サイト ゆるゆるプログラミング

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文 メソッドの戻り値
四則演算(足し算/引き算/掛け算/割り算)について-画像

計算結果の表示

足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)の使い方を説明

条件による処理の分岐に使用するif文について解説-画像

if文

条件による処理の分岐に使用するif文について解説

■新着情報

2021.06.18 変数の初期値 変数に値を代入しないで計算
2021.05.28 短針と長針の角度 短針と長針の角度は?
2021.05.19 各位(くらい)を求める 1の位の値は?10の位は?

■広告

Topへ