用分割圓的方法計算

2021-10-09 08:49:45 字數 726 閱讀 2201

def

calc_pi()

:from math import sqrt

radius =

1024.0

#理論上半徑可以是任何值,但是太小的話,累計誤差會比較大

radius_square = radius * radius

split_to =

6#圓被等分成了多少個扇形。初始值是6,這時弦的長度正好等於半徑

chord_len = radius #單個弦的長度。圓被分割的次數越多,所有弦的長度之和就越接近於圓的周長

for n in

range(24

):#繼續分割,但次數超過24時,python已無法再提高精度

split_to *=2;

#將每個扇形等分

h = chord_len /

2 t = radius - sqrt(radius_square - h*h)

chord_len = sqrt(h*h + t*t)

#新弦與原來弦的半段(h)以及平分線超過原來弦的部分(t)是乙個直角三角形

return split_to * chord_len /(2

* radius)

#返回結果

ps:當初上學時想用分割圓的方法手工計算一下π,但是不停地平方開方讓大腦一下子就過載了,算不下去了。現在用**區區十幾行代就搞定了,而且理論上精度還可以一直提高,真好:)

關於圓的計算

上機目的 設定程式設計實現求立體幾何的有關問題 上機任務 求出球,圓柱,圓錐的體積,表面積 作 者 黃兆寬 完成日期 2012 年 10 月 21 日 版 本 號 v1.0 輸入描述 無 問題描述 設計乙個程式來解決立體幾何問題 程式輸出 友好的提示介面 問題分析 略 演算法設計 略 include...

計算幾何 圓與圓的交點座標

給出兩圓的圓心座標和半徑,求出兩圓交點的座標 如下圖 可根據餘弦定理求出角a的大小,再根據函式atan2 可求出向量c1c2的方位角t 這樣一來,我們所求的交點就是以圓心c1.c為起點,大小為c1.r 角度為 t a 和 t a 的兩個向量 include include includeusing ...

計算幾何之圓與圓的交點

計算圓與圓的交點,需要用到餘弦定理 步驟如下 求出兩個圓的圓心距d 求出向量c2.c c1.c與c1.c到某交點的向量夾角a 求出向量c2.c c1.c與x軸的夾角t 那麼,兩個交點就分別是以c1.c為起點,大小為c1.r,角度為t a t a的兩個向量 題目 cgl 7 e ac include ...