实验任务:
1. 绘制嵌套彩色五角星(大小逐层递减)
2. 设计函数绘制自定义正多边形(边数与颜色参数化)
3. 扩展:实现动态旋转花瓣图案。
实验一:
代码:
import turtle
import random
# 初始化设置
turtle.setup(800, 600) # 设置画布大小
turtle.speed(10) # 设置绘制速度
turtle.colormode(255) # 启用RGB颜色模式
turtle.hideturtle() # 隐藏海龟光标
def draw_star(size, color):
turtle.color(color)
turtle.begin_fill()
for _ in range(5):
turtle.forward(size)
turtle.right(144)
turtle.end_fill()
def nested_stars():
turtle.penup()
turtle.goto(-200, 0)
turtle.pendown()
sizes = [120, 90, 60, 30] # 逐层递减的尺寸
colors = [(255,0,0), (255,165,0), (255,255,0), (0,255,0)] # 红橙黄绿
for size, color in zip(sizes, colors):
draw_star(size, color)
turtle.left(18) # 轻微旋转产生层次感
turtle.penup()
turtle.forward(20)
turtle.pendown()
if __name__ == "__main__":
# 任务1执行
nested_stars()
turtle.done()
截图:
运行结果:
实验二:
代码:
import turtle
def draw_polygon(sides, color):
angle = 360 / sides
turtle.color(color)
turtle.begin_fill()
for _ in range(sides):
turtle.forward(80)
turtle.right(angle)
turtle.end_fill()
# 示例调用
turtle.speed(1)
turtle.penup()
turtle.goto(-150, 0)
turtle.pendown()
draw_polygon(5, "blue") # 蓝色正五边形
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
draw_polygon(8, "#FF00FF") # 品红色正八边形(RGB颜色)
turtle.penup()
turtle.goto(150, 0)
turtle.pendown()
draw_polygon(3, (1, 0.5, 0)) # 橙色正三角形(RGB元组)
turtle.hideturtle()
turtle.done()
截图:
运行结果:
实验三:
代码:
import turtle
def draw_petal():
turtle.circle(80, 60) # 花瓣上半弧
turtle.left(120)
turtle.circle(80, 60) # 花瓣下半弧
turtle.left(120)
# 动画配置
turtle.speed(0)
turtle.hideturtle()
turtle.tracer(0) # 关闭自动刷新
angle = 0
while True:
turtle.clear()
turtle.penup()
turtle.goto(0, -50)
turtle.setheading(angle)
turtle.pendown()
turtle.color("red")
for _ in range(6): # 绘制6个花瓣
draw_petal()
turtle.right(60)
turtle.update()
angle += 0.1 # 每帧旋转0.1度
截图:
运行结果:
实现动态旋转花瓣图案