2020.03.23
2点間の距離 - 3次元
はじめに
dx = x2 - x1
dy = y2 - y1
dz = z2 - z1
Javaソースコード
Distance3D.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 029 030 031 032 033 034 035 036 037 038 039 040 041
public class Distance3D { public static void main( String[] args ) { double x1, y1, z1; double x2, y2, z2; // 1つ目の座標を代入 x1 = 60.0; y1 = 20.0; z1 = 5.0; // 2つ目の座標を代入 x2 = 10.0; y2 = 40.0; z2 = 20.0; // 結果を表示 System.out.println( dist3d( x1, y1, z1, x2, y2, z2 ) ); } // (x1,y1,z1)-(x2,y2,z2)の直線距離を計算するメソッド private static double dist3d( double x1, double y1, double z1, double x2, double y2, double z2 ) { double l; double dx, dy, dz; // x座標の差を計算してdxに代入 dx = x2 - x1; // y座標の差を計算してdyに代入 dy = y2 - y1; // y座標の差を計算してdyに代入 dz = z2 - z1; // 2点間の距離を計算してlに代入 l = Math.sqrt( dx * dx + dy * dy + dz * dz ); // 計算した距離を返す return l; } }
実行結果
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis Distance3D.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac Distance3D.java
実行
C:\talavax\javasample>java Distance3D
55.90169943749474
Javaソースコードの解説
021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040
// (x1,y1,z1)-(x2,y2,z2)の直線距離を計算するメソッド private static double dist3d( double x1, double y1, double z1, double x2, double y2, double z2 ) { double l; double dx, dy, dz; // x座標の差を計算してdxに代入 dx = x2 - x1; // y座標の差を計算してdyに代入 dy = y2 - y1; // y座標の差を計算してdyに代入 dz = z2 - z1; // 2点間の距離を計算してlに代入 l = Math.sqrt( dx * dx + dy * dy + dz * dz ); // 計算した距離を返す return l; }
与えられた2つの3次元座標(x1,y1,z1)と(x2,y2,z2)の各座標の差(dx,dy,dz)を計算し、dx2+dy2+dz2の平方根を計算して変数lに代入しています。そして、その値をreturn文で戻しています。
以上です。