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

C++プログラムで正N角形に内接する最大の円の面積を求める方法

正N角形に内接する最大の円とは

本記事では、一辺の長さが a である正N角形に内接する最大の円(内接円)の面積を、C++プログラムで求める方法を解説します。

数学的な背景と公式

正n角形に内接する最大の円の半径 r は、次の公式で表されます。

r = a / (2 * tan(180/n))

例として、六角形(n=6)を考えてみます。この場合、中心から見た半分の角度は30度になることが数学的に知られています。

したがって、円の半径は以下のように計算できます。

r = a / (2 * tan(30°)) = a√3 / 2

公式の導出

正多角形は、中心を共有するN個の同一の二等辺三角形に分割できます。そのうちの一つの三角形に注目すると、中心における全角度360度をN等分できることがわかります。

角度 x = 180/n
tan(x) = (a/2) / r
よって、r = a / (2 * tan(x))

内接円の面積は、
A = πr² = π * (a / (2 * tan(x))) * (a / (2 * tan(x)))

サンプルコード

以下は、六角形(n=6)の一辺の長さを4として、内接円の面積を計算するC++プログラムです。

#include <iostream>
using namespace std;
int main() {
   float area;
   float n = 6; float a = 4;
   float r = a / (2 * tan((180 / n) * 3.14159 / 180));
   area = (3.14) * (r) * (r);
   cout <<"area = "<<area<< endl;
   return 0;
}

コードの解説

  • n = 6:辺の数(六角形)を表します。
  • a = 4:一辺の長さです。
  • (180 / n) * 3.14159 / 180:角度を度からラジアンに変換しています。C++のtan関数はラジアンを引数として受け取るため、この変換が必要です。
  • area = 3.14 * r * r:円の面積の公式 A = πr² を用いて面積を計算します。

実行結果

area = 37.6801

まとめ

正N角形に内接する最大の円の面積は、半径の公式 r = a / (2 * tan(180/n)) を使えば簡単に求められます。プログラム実装の際は、角度の単位変換(度→ラジアン)を忘れないことが重要なポイントです。

  1. C++で指定された辺の長さを持つn辺の正多角形の面積を求める方法

    この記事では、指定された辺の長さを持つn辺の正多角形の面積を求める問題を取り上げ、図形の面積を計算する公式を導出し、それに基づいたプログラムを作成します。まず、内容を理解しやすくするために、基本事項をおさらいしましょう。基本事項のおさらいn辺の正多角形とは、すべての辺の長さが等しいn個の辺を持つ多角形のことです。例えば、正五角形や正六角形などが挙げられます。面積とは、二次元の図形が占める広がりの大きさを数量的に表したものです。面積公式の導出正多角形の面積を求めるには、図形を構成する個々の三角形の面積を求め、それに辺の数nを掛けます。正多角形は、中心を共有する頂点としてn個の二等辺三角形に分割で

  2. Pythonでポリゴンの面積を求める方法:靴ひも公式を使った実装

    はじめに2次元平面上に、単純な多角形(ポリゴン)の頂点を時計回りまたは反時計回りの順に並べた座標リストが与えられたとします。このとき、その多角形の面積を計算するのが本記事の目的です。例えば、入力が points = [(0, 0), (0, 5), (3, 5), (3, 0)] のような場合、これは幅3・高さ5の長方形を表しているため、出力は 15.0 となります。解法の考え方:靴ひも公式(Shoelace Formula)この問題は、有名な靴ひも公式(測量士の公式)を使うことで効率的に解けます。隣り合う2頂点ごとに外積 x1*y2 - y1*x2 を計算し、それらをすべて足し合わせて絶対値