实验2:turtle 库绘制进阶图形
知识点:turtle 库坐标控制、循环结构、函数封装(教材2.3-2.4)
实验任务 :
1. 绘制嵌套彩色五角星(大小逐层递减)
import turtledef draw_star(size, color):turtle.pencolor(color)turtle.fillcolor(color)turtle.begin_fill()for _ in range(5):turtle.forward(size)turtle.right(144) # 五角星角度为144°turtle.end_fill()def nested_colored_stars():turtle.speed(0)turtle.penup()turtle.goto(-50, 0) # 初始位置colors = ["red", "yellow", "blue", "green", "purple"]for i in range(5):size = 100 - i * 20 # 逐层递减turtle.pendown()draw_star(size, colors[i % len(colors)])turtle.penup()turtle.forward(10) # 微调位置防止重叠turtle.done()nested_colored_stars()
运行结果:
2. 设计函数绘制自定义正多边形(边数与颜色参数化)
import turtledef draw_polygon(sides, color, size=100):turtle.pencolor(color)angle = 360 / sides # 计算每个内角for _ in range(sides):turtle.forward(size)turtle.right(angle)# 测试绘制正六边形(颜色红色)
turtle.speed(1)
draw_polygon(6, "red")
turtle.done()
运行结果:
3. 扩展:实现动态旋转花瓣图案。
import turtledef draw_petal():turtle.circle(100, 60) # 画一个60°的圆弧turtle.left(120)turtle.circle(100, 60) # 再画一个60°的圆弧turtle.left(60) # 调整方向def rotating_flower():turtle.speed(0)turtle.bgcolor("white")colors = ["red", "orange", "yellow", "green", "blue", "purple"]for _ in range(36): # 旋转36次,每次10°turtle.pencolor(colors[_ % 6])draw_petal()turtle.left(10) # 每次旋转10°turtle.done()rotating_flower()
运行结果: