C++で線分の中点を求める方法とサンプルコード
本記事では、C++を使って線分の中点(ミッドポイント)を求めるプログラムの作成方法を解説します。線分の始点Aと終点Bの2つの座標が与えられたとき、その中点を計算するアルゴリズムについて学びましょう。
問題の概要
始点A(x1, y1)と終点B(x2, y2)で構成される線分があります。この線分の中点を求めるのが課題です。
入力例
a(x1, y1) = (4, -5) b(x2, y2) = (-2, 6)
出力例
(1, 0.5)
計算の説明
(x1 + x2)/2 = (4 + (-2)) / 2 = 1 (y1 + y2)/2 = (-5 + 6) / 2 = 0.5
解決アプローチ:中点の公式
この問題は、幾何学における中点の公式を使うことで簡単に解くことができます。中点の公式は以下のように表されます。
Mid = ( ((x1 + x2)/2), ((y1 + y2)/2) )
つまり、X座標とY座標それぞれについて、2つの端点の値を足して2で割るだけで中点が求まります。これは座標平面上で非常に直感的な計算方法です。
C++での実装例
それでは、実際にこの解法がどのように動作するかを示すプログラムを見てみましょう。
サンプルコード
#include<iostream>
using namespace std;
int main() {
float point[2][2] = {{-4, 5}, {-2, 6}};
float midX = (float)(( point[0][0] + point[1][0])/2);
float midY = (float)(( point[0][1] + point[1][1])/2);
cout<<"中点の座標は ("<<midX<<" , "<<midY<<")";
return 0;
}
実行結果
中点の座標は (-3 , 5.5)
コードのポイント
- float型の使用: 中点の計算では小数点以下の値が生じる可能性があるため、int型ではなくfloat型を使用しています。
- 二次元配列: 2つの点の座標をpoint[2][2]という二次元配列に格納することで、データ管理がシンプルになります。
- キャスト処理: 計算結果を明示的に(float)へキャストし、小数点数として正確に出力されるようにしています。
まとめ
線分の中点を求める計算は、中点の公式「各座標の平均」を用いるだけで実現できます。C++では浮動小数点型を適切に選択することで、整数座標同士の中点が小数になるケースにも柔軟に対応できます。ゲーム開発やグラフィックス処理など、座標計算が必要な場面で広く活用できる基本的なテクニックですので、ぜひマスターしておきましょう。
-
C++で三角形の重心を求めるプログラムの作成方法
この記事では、三角形の3つの頂点の座標を格納した2次元配列が与えられたときに、その三角形の重心を求めるC++プログラムの作成方法を解説します。 三角形の重心とは、三角形の3本の中線がすべて交わる点のことです。 また、三角形の中線とは、ある頂点と、その対辺(向かい合う辺)の中点を結ぶ線分のことを指します。 それでは、具体的な例を使って問題を確認してみましょう。 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-1.5, -1) 説明 重心 (x, y) = ((-3 + 1.5 - 3) / 3, (1 + 0 - 4) / 3) = (-1.5, -1) 解法のアプロ
-
C++で平行四辺形の面積を求めるプログラムの作成方法
この記事では、平行四辺形の底辺と高さを表す2つの値が与えられたとき、C++を使ってその面積を求めるプログラムを作成する方法を解説します。 平行四辺形とは? 平行四辺形とは、4つの辺からなる閉じた図形であり、向かい合う2組の辺がそれぞれ長さが等しく、互いに平行になっている四角形のことです。 問題を理解するための具体例 入力 B = 20, H = 15 出力 300 説明 平行四辺形の面積 = 底辺 × 高さ = 20 × 15 = 300 解決アプローチ この問題を解くには、平行四辺形の面積を求める幾何学の公式を使用します。 面積 = 底辺 × 高さ つまり、与えられた底辺と高さを掛け合わせ