指定圆心坐标画正多边形

指定圆心坐标画正多边形

"""
   指定圆心坐标画正多边形
"""
from sprites import *

screen = Screen()

n = int(screen.numinput('边数','输入边数:',minval=3,default=5))
d = screen.numinput('边长','输入边长:',minval=10,default=200)
r = (d/2) / (math.sin(math.pi/n))        # 外接圆半径

cors = []
sp = Sprite()
sp.randompos()               # 随机挑一个圆心
sp.setheading(90)            # 朝向上的方向
sp.left(180/n)               # 左转180/n度,为的是对称

for _ in range(n):           # 重复n次
    sp.fd(r)                 # 前进r
    cors.append(sp.pos())    # 记录坐标点
    sp.bk(r)                 # 倒退r
    sp.rt(360/n)             # 右转360/n
sp.goto(cors[0])             # 到第一个点
sp.pendown()                 # 落笔
for  i in range(1,n):        # 连每一根线条
    sp.goto(cors[i])
sp.goto(cors[0])             # 回到第一个点
sp.penup()



李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。