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()