2016.03.05

2024.11.27

極座標系

極座標系

極座標系とは?

極座標系は、原点からの距離rとx軸から反時計回りの偏角θの組み合わせ(r,θ)で座標を表すものです。

極座標系
極座標

一般的に使われている(x,y)を表現する直交座標極座標の関係式はx=rcosθ、y=rsinθです。これを図で表すと以下のようになります。

直交座標系と極座標系の関係
直交座標系と極座標系の関係

上の関係式の関係の求め方をもう少し詳しく書きます。次の図は、sinθcosθについて描いた図で、半径1で角度θのときx座標cosθに、y座標sinθになります。ここで半径をrとするとx座標y座標もr倍になるので、rcosθとrsinθがそれぞれ求めるxとyになります。

サインとコサイン
サインとコサイン

Javaのソースコード

角度」と「原点からの距離」を入力して、(x,y)を求めるJavaソースコードです。

Polar1.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
import java.util.Scanner;

public class Polar1 {
	public static void main( String[] args ) {
		// Scannerを作成
		Scanner scan = new Scanner( System.in );

		// 角度の入力
		System.out.println( "角度を度単位で入力してください" );
		double deg = scan.nextDouble();

		// 原点からの距離の入力
		System.out.println( "原点からの距離を入力してください" );
		double r = scan.nextDouble();

		// 度をラジアンに変換
		double rad = Math.toRadians( deg );

		// xの計算
		double x = r * Math.cos( rad );

		// yの計算
		double y = r * Math.sin( rad );

		// xとyをコンソール出力
		System.out.println( "x=" + x + " y=" + y  );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis Polar1.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac Polar1.java

実行

C:\talavax\javasample>java Polar1

実行例

角度を度単位で入力してください
45
原点からの距離を入力してください
100
x=70.71067811865476 y=70.71067811865474

Javaソースコードの解説

ここから、ソースを順番に説明していきます。

001
import java.util.Scanner;

Javaクラスライブラリの中から「java.util.Scanner」というパッケージにあるクラスを使うために記述しています。

003
public class Polar1 {

クラス名を、Polar1としています。

004
	public static void main( String[] args ) {

このmainメソッドからプログラムを実行します。

005
006
		// Scannerを作成
		Scanner scan = new Scanner( System.in );

標準入力System.inを使って、Scannerクラスscanを初期化しています。

008
009
010
		// 角度の入力
		System.out.println( "角度を度単位で入力してください" );
		double deg = scan.nextDouble();

角度の入力部分です。

nextDoubleメソッドで、キーボードから入力された1行を読み取り、その値をdouble型変数degに代入しています。

ここで、入力待ち状態になり、Enterキーが押されるまでに入力した値が変数degに格納されます。

012
013
014
		// 原点からの距離の入力
		System.out.println( "原点からの距離を入力してください" );
		double r = scan.nextDouble();

原点からの距離の入力部分です。

nextDoubleメソッドで、キーボードから入力された1行を読み取り、その値をdouble型変数rに代入しています。

ここで、入力待ち状態になり、Enterキーが押されるまでに入力した値が変数rに格納されます。

016
017
		// 度をラジアンに変換
		double rad = Math.toRadians( deg );

度単位の角度degをラジアンradに変換しています。変換にはMath.toRadiansメソッドを使っています。

Math.toRadiansメソッド

public static double Math.toRadians( double a )
・引数aで指定した角度をラジアンに変換した値を返します。

  パラメータ a : 角度(単位:度)[

  戻り値    ラジアン
019
020
		// xの計算
		double x = r * Math.cos( rad );

ラジアン単位の角度radと、原点からの距離rからx座標を計算しています。計算にMath.cosメソッドを使っています。

Math.cosメソッド

public static double Math.cos( double a )
・引数aで指定した角度の余弦 (コサイン) を返します。

  パラメータ a : ラジアンで指定した角度。

  戻り値    aの余弦
022
023
		// yの計算
		double y = r * Math.sin( rad );

ラジアン単位の角度radと、原点からの距離rからy座標を計算しています。計算にMath.sinメソッドを使っています。

Math.sinメソッド

public static double Math.sin( double a )
・引数aで指定した角度の正弦 (サイン) を返します。

  パラメータ a : ラジアンで指定した角度。

  戻り値    aの正弦
025
026
		// xとyをコンソール出力
		System.out.println( "x=" + x + " y=" + y  );

xとyをprintlnメソッドコンソール出力しています。

以上です。

次に読んでほしいコンテンツ

平面上の位置を表す座標系の1つXY座標系について詳しく解説。

2020.03.23

画像の座標系はどのように定義されていますか?

2020.03.23

国際単位系における角度の単位のラジアンについて説明しています。興味のある方は、記事をご覧ください。

2016.01.26

sin(サイン)の意味と、Math.sinメソッドの使い方をソースコードを使って詳しく解説しています。

2020.03.23

cos(コサイン)の意味と、Math.cosメソッドの使い方をソースコードを使って詳しく解説しています。

2020.03.23

tan(タンジェント)の意味と、Math.tanメソッドの使い方を解説しています。

2020.03.23

円の直径と半径について図を使って詳しく解説しています。

2020.03.23

円の中心座標(0,0)、半径rで表される円の円周上のランダムな座標を求めるJavaのソースコードを紹介しています。ラジアンを乱数で発生して座標を計算しています。

2019.09.27

円の中心座標(0,0)、半径rで表される円の円周上のランダムな座標を求めるJavaのソースコードを紹介しています。度単位の角度の乱数をラジアンに変換して座標を計算しています。

2019.09.27

円の中心座標(ox,oy)、半径rで表される円の円周上のランダムな座標を求めるJavaのソースコードを紹介しています。

2019.09.27

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

プログラミング、ITに関する用語をまとめています。

2022.10.17

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

関連コンテンツ

平面上の位置を表す座標系の1つXY座標系について詳しく解説。

2020.03.23

2つの座標(x1,y1)と(x2,y2)の直線距離を求める計算式は?

2020.03.23

国際単位系における角度の単位のラジアンについて説明しています。興味のある方は、記事をご覧ください。

2016.01.26

sin(サイン)の意味と、Math.sinメソッドの使い方をソースコードを使って詳しく解説しています。

2020.03.23

cos(コサイン)の意味と、Math.cosメソッドの使い方をソースコードを使って詳しく解説しています。

2020.03.23

円の直径と半径について図を使って詳しく解説しています。

2020.03.23

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

Javaプログラムの構成について解説しています。詳しくは、こちらをご覧ください。

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

キーボードを使って実数値(double)を入力する方法を解説しています。Scannerクラスを利用しています。

2023.03.09

プログラミングで使う変数って何?

2020.03.23

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

プログラミング、ITに関する用語をまとめています。

2022.10.17

広告