C言語で2点間の距離を計算するプログラムの作成方法
2点の座標が与えられたとき、その2点間の距離を求めて結果を表示するのが本記事のテーマです。
2次元平面上にAとBという2点があり、それぞれの座標を (x1, y1)、(x2, y2) とします。2点間の距離を求めるには、三平方の定理(ピタゴラスの定理)から導かれる次の公式をそのまま利用できます。
$$\sqrt{\lgroup x2-x1\rgroup^{2}+\lgroup y2-y1\rgroup^{2}}$$
以下は、2点とその差を表した図です
$$\frac{(x_2-x_1)}{(x_1,y_1)\:\:\:\:\:\:(y_2-y_1)\:\:\:\:\:\:(x_2,y_2)}$$
処理の手順は以下のとおりです −
- 座標 x1、x2、y1、y2 を入力する
- 公式を適用して2点間の差を計算する
- 距離を出力する
アルゴリズム
Start
Step 1-> declare function to calculate distance between two point
void three_dis(float x1, float y1, float x2, float y2)
set float dis = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2) * 1.0)
print dis
step 2-> In main()
Set float x1 = 4
Set float y1 = 9
Set float x2 = 5
Set float y2 = 10
Call two_dis(x1, y1, x2, y2)
Stop
サンプルコード
#include <stdio.h>
#include <math.h>
//2点間の距離を求める関数
void two_dis(float x1, float y1, float x2, float y2) {
float dis = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2) * 1.0);
printf("Distance between 2 points are : %f", dis);
return;
}
int main() {
float x1 = 4;
float y1 = 9;
float x2 = 5;
float y2 = 10;
two_dis(x1, y1, x2, y2);
return 0;
}
コードのポイント
距離の計算には、math.h ヘッダーに含まれる pow() 関数(べき乗を求める)と sqrt() 関数(平方根を求める)を使用しています。pow(x2 - x1, 2) でX座標の差の2乗、pow(y2 - y1, 2) でY座標の差の2乗を求め、その合計の平方根を取ることで、2点間の距離が得られます。
実行結果
上記のコードを実行すると、以下の出力が得られます。
Distance between 2 points are : 1.414214
-
Pythonで二分木の2つのノード間の距離を求めるプログラム
二分木が与えられたとき、その中の2つのノード間の距離を求めることを考えます。グラフの場合と同じように、2つのノードを結ぶ経路上の辺(エッジ)の数を数え、その本数を距離として返します。 二分木のノード構造 木の各ノードは、次のような構造を持っています。 data : <整数値> right : <木の別のノードへのポインタ> left : <木の別のノードへのポインタ> 問題の例 例として、次のような二分木を考えてみましょう。 この木において、ノード「2」とノード「8」の間の距離を求めたいとします。このときの出力は 4 になります。 ノード2からノード8へ至
-
Googleマップで2点間・複数地点の距離を測る方法(Android/iPhone/PC対応)
Googleマップで場所をチェックしているとき、現在地から目的地までの距離など、2点間の距離を知りたい場面がありますよね。距離測定機能を活用すれば、徒歩で向かうべきか車を使うべきかを事前に判断できます。しかも、複数の地点を回る場合の合計距離まで、追加アプリをインストールせずにGoogleマップだけで確認できるのが便利なところです。 Googleマップで距離を測定する方法【Android編】 Android端末でGoogleマップを開き、現在地を使用するか、住所や地名を入力します。地図上の任意の場所を長押しして、赤いピン(バルーン)を表示させる方法もあります。 入力した住所の情報が画面下部に