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)
解法のアプローチ
この問題は、三角形の重心を求める幾何学的な公式を利用することで簡単に解くことができます。
3つの頂点の座標をそれぞれ (ax, ay)、(bx, by)、(cx, cy) としたとき、重心の座標は以下の式で求められます。
重心 x = (ax + bx + cx) / 3
y = (ay + by + cy) / 3
つまり、各頂点のx座標・y座標の平均値を取るだけで重心が求まるため、計算量はO(1)と非常に効率的です。
解法の動作を示すサンプルプログラム:
コード例
#include <iostream>
using namespace std;
int main() {
float tri[3][2] = {{-3, 1},{1.5, 0},{-3, -4}};
cout<<"三角形の重心は (";
cout<<((tri[0][0]+tri[1][0]+tri[2][0])/3)<<" , ";
cout<<((tri[0][1]+tri[1][1]+tri[2][1])/3)<<")";
return 0;
}
実行結果
三角形の重心は (-1.5 , -1)
-
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 解決アプローチ:中
-
C++で平行四辺形の面積を求めるプログラムの作成方法
この記事では、平行四辺形の底辺と高さを表す2つの値が与えられたとき、C++を使ってその面積を求めるプログラムを作成する方法を解説します。 平行四辺形とは? 平行四辺形とは、4つの辺からなる閉じた図形であり、向かい合う2組の辺がそれぞれ長さが等しく、互いに平行になっている四角形のことです。 問題を理解するための具体例 入力 B = 20, H = 15 出力 300 説明 平行四辺形の面積 = 底辺 × 高さ = 20 × 15 = 300 解決アプローチ この問題を解くには、平行四辺形の面積を求める幾何学の公式を使用します。 面積 = 底辺 × 高さ つまり、与えられた底辺と高さを掛け合わせ