turtle库绘制进阶图形
要求:
1.绘制嵌套彩色五角星(大小逐层递减)
2. 设计函数绘制自定义正多边形(边数与颜色参数化)
3. 扩展:实现动态旋转花瓣图案
代码:
import turtledef draw_nested_star():colors = ["red", "orange", "yellow", "green", "blue"]initial_size = 200size_decrease = 30for i in range(5):turtle.pencolor(colors[i])turtle.fillcolor(colors[i])current_size = initial_size - i * size_decreaseturtle.penup()# 调整位置实现层叠效果x = (i - 2) * (size_decrease / 2)y = (i - 2) * (size_decrease / 2)turtle.goto(x, y)turtle.pendown()turtle.begin_fill()for _ in range(5):turtle.forward(current_size)turtle.right(144)turtle.end_fill()def draw_polygon(sides, color):turtle.pencolor(color)turtle.fillcolor(color)turtle.penup()# 调整坐标使其更靠近五角星turtle.goto(-200, 20)turtle.pendown()turtle.begin_fill()angle = 360 / sidesfor _ in range(sides):turtle.forward(80)turtle.right(angle)turtle.end_fill()def draw_rotating_petals():turtle.speed(0)num_petals = 10angle_increment = 360 / num_petalsfor i in range(num_petals):turtle.color("pink")turtle.begin_fill()for _ in range(2):turtle.circle(50, 60)turtle.left(120)turtle.end_fill()turtle.left(angle_increment)def turtle_drawing():turtle.setup(800, 600)turtle.speed(0)draw_nested_star()turtle.penup()turtle.goto(-200, -200)turtle.pendown()draw_polygon(6, "purple")turtle.penup()turtle.goto(200, 0)turtle.pendown()draw_rotating_petals()turtle.done()if __name__ == "__main__":turtle_drawing()
运行结果: