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 ...