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

角度と半径から弧の長さを求める方法|C++での計算例をわかりやすく解説

この記事では、円の半径中心角が与えられたときに、弧の長さを求める方法を解説します。プログラミング(C++)を使った具体的な実装例もあわせて紹介するので、数学的な考え方とコードの両方を一度に理解できます。

弧の長さとは?

円周上の一部分を「弧」と呼びます。円全体の円周の長さは 2πr で表されますが、中心角が360度未満の場合、その角度に対応する部分だけの長さ、つまり弧の長さを求める必要があります。

たとえば、下図のように半径 r の円があり、中心角 x(度数法)が与えられているとします。ここで求めたいのは、この角に対応する弧の長さ L です。

弧の長さを求める公式

中心角が360度のとき、弧の長さは円周全体(2πr)になります。したがって、角度 x 度に対応する弧の長さは、円周に対する角度の割合を掛けることで求められます。

𝐿 = 2𝜋𝑟 × (𝑥 / 360)
  • 2πr:円周の長さ
  • x / 360:中心角が円全体に占める割合

この2つを掛け合わせることで、指定した角度分の弧の長さが得られます。

C++での実装例

それでは、実際にC++で弧の長さを計算するプログラムを見てみましょう。

#include <iostream>
using namespace std;

float getArcLength(float r, float x){
    return (2 * 3.1415f * r) * (x / 360.0f);
}

int main() {
    float rad = 12.0f;   // 半径
    float angle = 45.0f; // 中心角(度)
    cout << "Arc Length: " << getArcLength(rad, angle);
}

コードのポイント

  • 関数 getArcLength は、半径 r と角度 x を引数として受け取ります。
  • 公式 L = 2πr × (x/360) に従って計算し、結果を返します。
  • 浮動小数点演算のため、定数には f サフィックスを付けて float 型として扱っています。

実行結果

半径12、中心角45度の場合の実行結果は以下のとおりです。

Arc Length: 9.4245

検算してみましょう。円周は 2 × 3.1415 × 12 ≒ 75.396 です。これに 45 / 360 = 0.125 を掛けると、75.396 × 0.125 ≒ 9.4245 となり、正しく計算できていることが確認できます。

まとめ

弧の長さは、「円周の長さ × (中心角 ÷ 360)」というシンプルな公式で求められます。角度がラジアンで与えられる場合は L = rθ というさらに簡単な式を使えるので、用途に応じて使い分けると便利です。

  1. 対角線の長さから正六角形の面積を求めるC++プログラム

    この記事では、対角線の長さがわかっている場合に、正六角形の面積を計算する方法を解説します。ここでは対角線の長さを d とします。正六角形の内角はそれぞれ 120° であり、すべての内角の合計は 720° になります。対角線の長さが d のとき、面積は以下の公式で求められます。面積の公式正六角形の対角線 d を使った面積の式は次のとおりです。面積 = (3√3 × d²) / 8この式では、対角線の2乗に 3√3 を掛け、8 で割ることで面積が得られます。入力値が負の場合は無効な値として扱うため、プログラム側でチェックを行っています。サンプルコード(C++)#include <iostre

  2. C++で指定した開始文字から最長の連続パスの長さを求める方法

    異なる文字が格納された行列(マトリックス)が与えられます。ある文字を起点として、現在の文字より1つ大きい連続した文字(例:a→b→c→d)をたどりながら、最長のパスの長さを見つけることが課題です。移動は、縦・横・斜めを含む8方向の隣接セルに対して可能です。 例えば、下図のような行列が与えられ、開始文字を「E」とします。 この行列で開始文字「e」から探索すると、最長の連続パスの長さは5となります。 アルゴリズムの考え方 最長パスを見つけるには、深さ優先探索(DFS)アルゴリズムを使用します。DFSの実行中には、同じ部分問題が何度も発生することがあります。このような部分問題を繰り返し計算しないよ