セージ の メモ書き

メモこそ命の恩人だ

C# - 円周率

円周率

円周率 - Wikipedia

円周率の歴史 - Wikipedia

数学定数 - Wikipedia

  • 3.14159265359...
  • "円の直径" に対する "円周" の割合である。( 円周率 = 円周 ÷ 直径 )
  • 直径 1 m の場合、円周は 約 3.14 m となる。
  • 数学定数の一つ。小数点以下の数が循環せず無限に続く。
  • ギリシャ文字 π (パイ) で表現する。

証明

  • 円周率の導き方はいくつかあるらしい。

★ の方法を試してみる。

   

上図より、正多角形の1辺あたりの長さ s は以下の式で計算できる。

sinθ = (s/2) / r 

s = 2r・sinθ

上図の θ について

  • 360度 = 2π (rad)
  • 正 n 角形
  • n で分割した三角形のさらに半分

より、θ = (2π ÷ n) ÷ 2 = π / n となる。
上述の θ に適用すると、、、

s = 2r・sin(π/n)

角の数を考慮し、正多角形の辺長の合計は以下になる。

2rn・sin(π/n)


半径 0.5 m (= 直径 1 m) で固定し、辺長の合計値を計算する。
角数を大きくし、円に近づくほど、円周率に近づく。

public double GetPolygonLength(long cornerCount) => 2 * 0.5 * cornerCount * Math.Sin(Math.PI / cornerCount);
Debug.WriteLine(GetPolygonLength(cornerCount: 3));
// 2.59807621135332

Debug.WriteLine(GetPolygonLength(cornerCount: 4));
// 2.82842712474619

Debug.WriteLine(GetPolygonLength(cornerCount: 5));
// 2.93892626146237

Debug.WriteLine(GetPolygonLength(cornerCount: 10));
// 3.09016994374947

Debug.WriteLine(GetPolygonLength(cornerCount: 100));
// 3.14107590781283

Debug.WriteLine(GetPolygonLength(cornerCount: 1000));
// 3.14158748587956

Debug.WriteLine(GetPolygonLength(cornerCount: 10000));
// 3.14159260191267

Debug.WriteLine(GetPolygonLength(cornerCount: 100000));
// 3.14159265307302

Debug.WriteLine(GetPolygonLength(cornerCount: 1000000));
// 3.14159265358463

Debug.WriteLine(GetPolygonLength(cornerCount: 10000000));
// 3.14159265358974

Debug.WriteLine(GetPolygonLength(cornerCount: 100000000));
// 3.14159265358979

Debug.WriteLine(GetPolygonLength(cornerCount: 1000000000));
// 3.14159265358979

Debug.WriteLine(GetPolygonLength(cornerCount: 10000000000));
// 3.14159265358979

// 角数が大きいほど、円周率の精度が高くなることを確認。
// 有効数字が 15 桁 (double 型) で確認し、正10億角形以降は変化がなかった。

公式

円周

円周率の前提が以下の通り。

π = 円周 ÷ 直径

なので、円周は以下で計算できる。

円周 = 直径 × π

円周 = 2 × 半径 × π

円の面積

円の面積 = 半径 × 半径 × π

四角形に落とし込んで考える。

面積 = (円周 ÷ 2) × 半径

面積 = (2 × 半径 × π) ÷ 2 × 半径

面積 = 半径 × 半径 × π

円柱の表面積

(円の面積 × 2) + (円周 × 高さ)

天面 + 底面 + 側面

円柱の体積

底面積 × 高さ

円錐の表面積

底面積 + 側面積

底面積 + (底面の半径 × 母線 × π)

扇形の面積 (= 側面積) がポイント。

  • 底面の半径 : r
  • 母線 : m
  • 中心角 : α

扇形の弧の長さは、、、

2πr = 2πm × α/360

α/360 = r/m

つまり、扇形の面積は以下で計算できる。

π × m × m × α/360

π × m × m × r ÷ m

π × m × r

円錐の体積

底面積 × 高さ ÷ 3

三角錐や四角錐も同じ公式。3で割る。

  • 積分の話になるみたい。
  • また今度調べるか。。。。

以上