Think Python-How to Think Like a Computer Scientist_chapter4_练习 4-3

# coding=gbk 
import math
import turtle
bob = turtle.Turtle()
print(bob)

def pie(t,r,n):
    """画一个包含 n 个三角形的饼图。
    t:Turtle object
    r:三角形腰长
    n:包含几个三角形或几边形
    """
    angle1 = 180 / n
    angle2 = 90 + angle1
    y = 2 * math.sin(math.radians(angle1)) *r
    t.lt(angle1)
    for i in range(n):
        t.fd(r)
        t.lt(angle2)
        t.fd(y)
        t.lt(angle2)
        t.fd(r)
        t.lt(180)

pie(bob,100,7)        
turtle.mainloop()

效果图:



# coding=gbk 
import math
import turtle

def pie(t,r,n):
    """画一个包含 n 个三角形的饼图。
    t:Turtle object
    r:三角形腰长
    n:包含几个三角形或几边形
    """
    angle1 = 180 / n
    angle2 = 90 + angle1
    y = 2 * math.sin(math.radians(angle1)) *r
    t.lt(angle1)
    for i in range(n):
        t.fd(r)
        t.lt(angle2)
        t.fd(y)
        t.lt(angle2)
        t.fd(r)
        t.lt(180)
    t.rt(angle1)

def draw_pie(t,r,n):
    pie(t,r,n)
    t.pu()
    t.fd(3*r)
    t.pd()

bob = turtle.Turtle()

draw_pie(bob,50,5)
draw_pie(bob,50,6)
draw_pie(bob,50,7)
draw_pie(bob,50,8)

bob.hideturtle()
turtle.mainloop()

posted @   隔岸观雨  阅读(19)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示