Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

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

  1. Pythonで二分木の2つのノード間の距離を求めるプログラム

    二分木が与えられたとき、その中の2つのノード間の距離を求めることを考えます。グラフの場合と同じように、2つのノードを結ぶ経路上の辺(エッジ)の数を数え、その本数を距離として返します。 二分木のノード構造 木の各ノードは、次のような構造を持っています。 data : <整数値> right : <木の別のノードへのポインタ> left : <木の別のノードへのポインタ> 問題の例 例として、次のような二分木を考えてみましょう。 この木において、ノード「2」とノード「8」の間の距離を求めたいとします。このときの出力は 4 になります。 ノード2からノード8へ至

  2. Googleマップで2点間・複数地点の距離を測る方法(Android/iPhone/PC対応)

    Googleマップで場所をチェックしているとき、現在地から目的地までの距離など、2点間の距離を知りたい場面がありますよね。距離測定機能を活用すれば、徒歩で向かうべきか車を使うべきかを事前に判断できます。しかも、複数の地点を回る場合の合計距離まで、追加アプリをインストールせずにGoogleマップだけで確認できるのが便利なところです。 Googleマップで距離を測定する方法【Android編】 Android端末でGoogleマップを開き、現在地を使用するか、住所や地名を入力します。地図上の任意の場所を長押しして、赤いピン(バルーン)を表示させる方法もあります。 入力した住所の情報が画面下部に