單位圓外切正n邊形,再外接圓,n從三遞增
最後算得最大的圓的半徑接近8.7,請問這個是怎麼算出来的,能否用數學軟件算出来?另附:後来有人算往內接的情況,結果是1/8.7。同樣想知道求解方法。 计算结果
绘图表示过程
"""
从单位圆开始,画出最外层圆外切正多边形,及多边形外接圆,正多边形边数从3依次递增
"""
import numpy as np
import matplotlib.pyplot as plt
import time
start_time = time.time()
fig,ax = plt.subplots()
t= np.linspace(0,np.pi*2)
r = 1
# 画出单位圆
ax.plot(r*np.cos(t),r*np.sin(t),'r')
ang = 0
#边数从3递增到100
for i in range(3,100):
#半径按外切多边形半径公式递推
r = r/np.cos(np.pi/i)
# p为正多边形顶点,每次旋转一个角度用来美化
p = np.linspace(0,np.pi*2,i+1)+ang
ang += np.pi/(i+1)
#画出多边形及多边形的外接圆
ax.plot(r*np.cos(p),r*np.sin(p),'b')
ax.plot(r*np.cos(t),r*np.sin(t),'r')
print("最外层圆半径为%s"%r)
print("python计算用时:%s"%(time.time()-start_time)) markfang2050 发表于 2021-8-27 18:18
绘图表示过程
非常美妙,請問是不是用mathemetica做的?
页:
[1]