2022.09.27
Javaプログラミング

円周上のランダムな座標を求める その2
原点(0,0)、半径rで表す円の上の座標を乱数を使って求めるソースコードを紹介しています。
下の図のように、角度θと半径rを与えることで座標(x,y)を計算することができます。
ここで紹介するソースコードでは、固定した半径rの値と、乱数で発生した度単位の角度をラジアンθに変換した値を使ってランダムな円周上の座標を計算しています。

角度θと半径rから(x,y)を求める
Javaソースコード
PointOnCircle2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020
public class PointOnCircle2 { public static void main( String[] args ) { // 半径を指定 double radius = 100.0; // 乱数で度を求める double deg = 360.0 * Math.random(); // 度をラジアンに変換 double rad = Math.toRadians( deg ); // 原点(0,0)、半径radiusの円周上の(x,y)を計算 double x = radius * Math.cos( rad ); double y = radius * Math.sin( rad ); // 結果を出力 System.out.println( "x=" + x ); System.out.println( "y=" + y ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis PointOnCircle2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac PointOnCircle2.java
実行
C:\talavax\javasample>java PointOnCircle2
出力結果(実行する毎に結果が変わります)
x=14.035546557475623 y=-99.01011783061837
Javaソースコードの解説
001
public class PointOnCircle2 {
クラス名を、PointOnCircle2としています。
002
public static void main( String[] args ) {
003 004
// 半径を指定 double radius = 100.0;
006 007
// 乱数で度を求める double deg = 360.0 * Math.random();
009 010
// 度をラジアンに変換 double rad = Math.toRadians( deg );
度単位の角度degをラジアンに変換した値を変数radに代入しています。
度からラジアンへの変換は、Math.toRadiansメソッドを使っています。
012 013 014
// 原点(0,0)、半径radiusの円周上の(x,y)を計算 double x = radius * Math.cos( rad ); double y = radius * Math.sin( rad );
016 017 018
// 結果を出力 System.out.println( "x=" + x ); System.out.println( "y=" + y );
求めた座標(x,y)をprintlnメソッドでコンソール出力しています。
以上です。
円周上の座標に関するコンテンツ
- 円の直径と半径
- 有限小数と無限小数
- 点が円内かを判定
- 球の表面積/体積計算
- 円の面積計算
- 立方体の表面積/体積計算
- 円周率πを計算で求める その1
- 数学関数 三角関数 cos
- 格子座標から円周率πを計算
- 円周率πを計算で求める その2
- 数学定数 円周率π(パイ)
- 角度とラジアンの相互変換
- 数学関数 三角関数 sin
- 数学関数 三角関数 tan
- tan(タンジェント)
- 円周上のランダムな座標を求める その1
- 円周上のランダムな座標を求める その3
- 単位円
- 変数について
- 円弧の長さ
- 数学関数 逆三角関数 acos
- 数学関数 逆三角関数 asin
- 数学関数 逆三角関数 atan
- 数学関数 逆三角関数 atan2
- 数学関数 逆三角関数 atan3
- メソッド
- 放射状模様
- プログラミング言語
- 実数と虚数
- キーボード入力した角度のsin、cosを計算
- 表面積
- xy-座標の描画の実装
- テーブルによる色変換 その1
- コサイン(cos)グラフの表示
- タンジェント(tan)グラフの表示
- グラフの表示
- 正三角形の面積計算
- 三角関数表
- 極座標系
- 三角関数表の作成 その1
- 三角関数表の作成 その2
- 三角関数表の作成 その3
次に読んでほしいコンテンツ
円の中心座標(0,0)、半径rで表される円の円周上のランダムな座標を求めるJavaのソースコードを紹介しています。ラジアンを乱数で発生して座標を計算しています。
2019.09.27