半径が与えられたn辺の正多角形の面積を求める方法
本記事では、半径が与えられたn辺の正多角形の面積を求める方法を解説します。ここでいう「半径」とは、多角形の中心から任意の頂点までの距離のことです。
考え方:多角形を三角形に分割する
この問題を解くために、中心から一辺へ垂線を引きます。一辺の長さを「a」とすると、垂線はこの辺を2等分し、それぞれの長さはa/2になります。また、垂線と半径がなす角をx、半径の長さをrとします。

図からわかるように、正多角形はN個の同一の三角形に分割できます。つまり、N辺の多角形は必ずN個の三角形に分けられるのです。中心における全角度は360°なので、これをN等分すると、各三角形の中心角は360°/Nとなります(例:N=6の場合、360°/6=60°)。したがって、角xはその半分である180°/Nです。

面積の計算式
三角関数を用いると、一辺の長さaと三角形の高さhは次のように求められます。
- a = 2 × r × sin(180°/N)
- h = r × cos(180°/N)
したがって、1つの三角形の面積Aは次のとおりです。
A = (1/2) × a × h = (r² / 2) × sin(360°/N)
多角形全体の面積は、これにNを掛けた「N × A」となります。
サンプルコード(C++)
#include <iostream>
#include <cmath>
using namespace std;
float polygonArea(float r, int n){
return ((r * r * n) * sin((360 / n) * 3.1415 / 180)) / 2; // 角度をラジアンに変換してから計算
}
int main() {
float rad = 9.0f;
int sides = 6;
cout << "Polygon Area: " << polygonArea(rad, sides);
}実行結果
Polygon Area: 210.44
この例では、半径9.0、辺数6(正六角形)の場合の面積が約210.44と計算されています。この公式を使えば、任意の辺数・半径の正多角形の面積を簡単に求められます。
-
C++で3辺の長さが与えられた三角形の外接円の面積を求める方法
C++で三角形の外接円の面積を計算する 本記事では、3辺の長さが分かっている三角形について、その外接円(3つの頂点すべてを通る円)の面積をC++で求める方法を解説します。 下図のように、辺ABの長さをa、辺BCの長さをb、辺CAの長さをc、外接円の半径をrとします。 外接円の半径を求める公式 外接円の半径rは、3辺の長さと三角形の面積Sを用いて、次の式で表されます。 具体的な手順は以下の通りです。 まず、半周長 s = (a + b + c) / 2 を求めます。 ヘロンの公式より、三角形の面積は S = √(s(s − a)(s − b)(s − c)) で計算できます。 半径 r =
-
Pythonでポリゴンの面積を求める方法:靴ひも公式を使った実装
はじめに2次元平面上に、単純な多角形(ポリゴン)の頂点を時計回りまたは反時計回りの順に並べた座標リストが与えられたとします。このとき、その多角形の面積を計算するのが本記事の目的です。例えば、入力が points = [(0, 0), (0, 5), (3, 5), (3, 0)] のような場合、これは幅3・高さ5の長方形を表しているため、出力は 15.0 となります。解法の考え方:靴ひも公式(Shoelace Formula)この問題は、有名な靴ひも公式(測量士の公式)を使うことで効率的に解けます。隣り合う2頂点ごとに外積 x1*y2 - y1*x2 を計算し、それらをすべて足し合わせて絶対値