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

C++で正多角形の外接円(半径・面積)を求めるプログラム

本記事では、C++を使って正多角形の外接円の半径と面積を求めるプログラムの作成方法を解説します。入力として、多角形の辺の数 N と各辺の長さ A の2つの値が与えられます。


問題の概要

この課題では、辺の数と各辺の長さが既知である正多角形に対して、その外接円(すべての頂点を通る円)の半径面積を計算します。

具体例で問題を確認してみましょう。

入力例

n = 4(辺の数)
a = 2(各辺の長さ)

解き方のアプローチ

まず、与えられた正多角形の外接円の半径を求めます。辺の長さが a、辺の数が N の場合、外接円の半径は次の公式で表されます。

r = a / √( 2 × (1 − cos(360° / n)) )

この半径を使えば、外接円の面積は以下のよく知られた円の面積の公式から求められます。

面積 = π × r²

注意点:角度の単位変換

C++標準ライブラリの cos() 関数は引数としてラジアンを受け取るため、度で表した角度(360° / n)をそのまま渡すと誤った結果になります。実装時には M_PI / 180 を掛けてラジアンへ変換しましょう。

プログラム例

以下は、この解法の動作を示すサンプルコードです。

ソースコード

#include <bits/stdc++.h>
using namespace std;

void CalcRadAreaCircumcircle(float n, float a) {
    // 度をラジアンに変換して計算
    float theta = (M_PI / 180) * (360 / n);
    float r = a / sqrt(2 * (1 - cos(theta)));
    cout << "外接円の半径は " << r << endl;
    cout << "外接円の面積は " << ((3.14) * r * r) << endl;
}

int main() {
    float n = 5, a = 6;
    CalcRadAreaCircumcircle(n, a);
    return 0;
}

出力結果

外接円の半径は 5.10634
外接円の面積は 81.7956

まとめ

正多角形の外接円を求めるには、辺の数 N と辺の長さ A から半径の公式 r = a / √(2(1 − cos(360°/n))) を用いるのがポイントです。あとは円の面積公式 πr² を適用するだけで面積も算出できます。ただし、C++ の三角関数はラジアンを前提としているため、角度の単位変換を忘れないようにしてください。

  1. 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) 解法のアプロ

  2. C++で平行四辺形の面積を求めるプログラムの作成方法

    この記事では、平行四辺形の底辺と高さを表す2つの値が与えられたとき、C++を使ってその面積を求めるプログラムを作成する方法を解説します。 平行四辺形とは? 平行四辺形とは、4つの辺からなる閉じた図形であり、向かい合う2組の辺がそれぞれ長さが等しく、互いに平行になっている四角形のことです。 問題を理解するための具体例 入力 B = 20, H = 15 出力 300 説明 平行四辺形の面積 = 底辺 × 高さ = 20 × 15 = 300 解決アプローチ この問題を解くには、平行四辺形の面積を求める幾何学の公式を使用します。 面積 = 底辺 × 高さ つまり、与えられた底辺と高さを掛け合わせ