实验2:turtle库绘制进阶图形

实验2:turtle库绘制进阶图形(2学时)
知识点:turtle库坐标控制、循环结构、函数封装(教材2.3-2.4)
实验任务
1.绘制嵌套彩色五角星(大小逐层递减)
2.设计函数绘制自定义正多边形(边数与颜色参数化)
3.扩展:实现动态旋转花瓣图案。

代码:

import turtle
# 1. 绘制嵌套彩色五角星(大小逐层递减)
screen = turtle.Screen()
pen = turtle.Turtle()
pen.speed(0)
sizes = [100, 80, 60, 40, 20]
colors = ['red', 'orange', 'yellow', 'green', 'blue']
for i in range(len(sizes)):
    pen.color(colors[i])
    pen.penup()
    pen.goto(0, -sizes[i] // 2)
    pen.pendown()
    for _ in range(5):
        pen.forward(sizes[i])
        pen.right(144)
# 等待 8 秒后清除屏幕
screen.ontimer(pen.reset, 8000)


# 2. 绘制自定义正多边形(边数与颜色参数化)
def draw_polygon():
    pen.speed(0)
    sides = 6
    color = 'purple'
    angle = 360 / sides
    pen.color(color)
    for _ in range(sides):
        pen.forward(100)
        pen.right(angle)
    # 等待 8 秒后清除屏幕
    screen.ontimer(pen.reset, 8000)
    # 等待 8 秒后绘制花瓣
    screen.ontimer(draw_petals, 8000)


# 3. 实现动态旋转花瓣图案
def draw_petals():
    pen.speed(0)
    num_petals = 10
    # 只绘制一次花瓣
    for i in range(num_petals):
        pen.color('pink')
        pen.begin_fill()
        pen.circle(50, 60)
        pen.left(120)
        pen.circle(50, 60)
        pen.end_fill()
        pen.left(360 / num_petals)
    angle_increment = 1  # 每次旋转的角度
    total_rotation = 360  # 总共旋转的角度
    def rotate_petals():
        nonlocal total_rotation
        if total_rotation > 0:
            pen.left(angle_increment)
            screen.update()
            total_rotation -= angle_increment
            screen.ontimer(rotate_petals, 20)  # 控制旋转速度
        else:
            # 旋转结束后等待 8 秒退出
            screen.ontimer(screen.bye, 8000)
    rotate_petals()
# 等待 8 秒后绘制正多边形
screen.ontimer(draw_polygon, 8000)
screen.mainloop()
 

结果截图:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值