当前位置:首页>python>我让HuiCode编程助手写的python动画

我让HuiCode编程助手写的python动画

  • 2026-10-11 07:21:21
我让HuiCode编程助手写的python动画

import turtle

import time

def set_pen_color(x, y, r, g, b):

    turtle.penup()

    turtle.goto(x, y)

    turtle.pendown()

    turtle.pencolor(r, g, b)

def draw_rose(x, y, size=1, angle_offset=0):

    # 移动到花朵起始位置

    turtle.penup()

    turtle.goto(x, y)

    turtle.pendown()

    turtle.left(angle_offset)

    # 画外层花瓣(深红渐变)

    turtle.fillcolor("#C71585")

    turtle.begin_fill()

    turtle.circle(10*size, 180)

    turtle.circle(25*size, 110)

    turtle.left(50)

    turtle.circle(60*size, 45)

    turtle.circle(20*size, 170)

    turtle.right(24)

    turtle.fd(30*size)

    turtle.left(10)

    turtle.circle(30*size, 110)

    turtle.fd(20*size)

    turtle.left(40)

    turtle.circle(90*size, 70)

    turtle.circle(30*size, 150)

    turtle.right(30)

    turtle.fd(15*size)

    turtle.circle(80*size, 90)

    turtle.left(15)

    turtle.fd(45*size)

    turtle.right(165)

    turtle.fd(20*size)

    turtle.left(155)

    turtle.circle(150*size, 80)

    turtle.left(50)

    turtle.circle(150*size, 90)

    turtle.end_fill()

    # 画中层花瓣(浅红渐变)

    turtle.left(150)

    turtle.circle(-90*size, 70)

    turtle.left(20)

    turtle.circle(75*size, 105)

    turtle.setheading(60)

    turtle.circle(80*size, 98)

    turtle.circle(-90*size, 40)

    turtle.end_fill()

    # 画花蕊

    turtle.left(180)

    turtle.circle(90*size, 40)

    turtle.circle(-80*size, 98)

    turtle.setheading(-83)

    # 画花茎

    turtle.fd(30*size)

    turtle.left(90)

    turtle.fd(25*size)

    turtle.left(45)

    turtle.fillcolor("#228B22")

    turtle.begin_fill()

    turtle.circle(-80*size, 90)

    turtle.right(90)

    turtle.circle(-80*size, 90)

    turtle.end_fill()

    turtle.left(135)

    turtle.fd(60*size)

    turtle.left(180)

    turtle.fd(85*size)

    turtle.left(90)

    turtle.fd(80*size)

    # 画右侧叶子

    turtle.right(90)

    turtle.right(45)

    turtle.fillcolor("#32CD32")

    turtle.begin_fill()

    turtle.circle(80*size, 90)

    turtle.left(90)

    turtle.circle(80*size, 90)

    turtle.end_fill()

    turtle.left(135)

    turtle.fd(60*size)

    turtle.left(180)

    turtle.fd(60*size)

    turtle.right(90)

    turtle.circle(200*size, 60)

    # 画小刺(简化版)

    turtle.pencolor("#228B22")

    for _ in range(3):

        turtle.fd(10*size)

        turtle.right(120)

        turtle.fd(5*size)

        turtle.left(120)

        turtle.fd(10*size)

        turtle.left(120)

        turtle.fd(5*size)

        turtle.right(120)

    turtle.pencolor("#000000")

    # 恢复角度,方便画下一朵

    turtle.setheading(0)

def draw_bud(x, y, size=0.6):

    # 画小花苞

    turtle.penup()

    turtle.goto(x, y)

    turtle.pendown()

    turtle.fillcolor("#FF69B4")

    turtle.begin_fill()

    turtle.circle(12*size, 180)

    turtle.circle(5*size, 110)

    turtle.left(50)

    turtle.circle(15*size, 45)

    turtle.circle(5*size, 170)

    turtle.end_fill()

    # 花苞萼片

    turtle.fillcolor("#228B22")

    turtle.begin_fill()

    turtle.left(30)

    turtle.fd(20*size)

    turtle.left(120)

    turtle.fd(20*size)

    turtle.left(120)

    turtle.fd(20*size)

    turtle.end_fill()

# 初始化画布

turtle.setup(800, 600)

turtle.bgcolor("#FFF0F5")  # 淡粉色背景

turtle.speed(0)  # 最快速度

turtle.colormode(255)

turtle.hideturtle()

# 画一簇玫瑰(3朵大的+2个花苞)

draw_rose(-120, -50, size=1, angle_offset=20)

draw_rose(0, 0, size=1.1, angle_offset=-10)

draw_rose(130, -40, size=0.9, angle_offset=15)

draw_bud(-80, 80, size=0.7)

draw_bud(100, 70, size=0.6)

# 写爱心文字

turtle.penup()

turtle.goto(0, -220)

turtle.pendown()

turtle.pencolor("#C71585")

turtle.write("亲爱的,送你一簇专属玫瑰花❤️", align="center", font=("Arial", 20, "bold"))

# 防止窗口闪退!!

turtle.done()

最新文章

随机文章