fork download
  1.  
Success #stdin #stdout 0.08s 14184KB
stdin
#-*- coding: UTF-8 -*-
import turtle as t
 
# 设置背景颜色,窗口位置以及大小
t.colormode(255)# 颜色模式(RGB 0-255)
t.speed(0)# 绘图速度:0为最快(无延迟)
t.screensize(850,760,"white")# 画布大小(宽×高)及背景色
t.setup(width=850, height=760,startx=260, starty=0) # 绘图窗口大小与起始坐标
t.title("这个是刘珈宏送给你的草莓熊!")# 窗口标题
t.resizemode('noresize')  # 禁止调整窗口大小(避免图形错位)
t.tracer(1)   # 实时显示绘制过程
 
# 颜色配置:风车叶片深色与浅色列表
scolor=["#E6005C","#00BFFF","#538a30","#F28500"]   # 深色列表
qcolor=["#FF007F","#87CEFA","#7fbc2b","#FFA500"]  # 浅色列表
# 风车尺寸计算:基于斜边blsize推导直角边长度
blsize=80                     # 大等腰直角三角形斜边(风车叶片基础尺寸)
bs=2**0.5/2*blsize             # 大三角形直角边(根号2/2 × 斜边)
zjb=blsize/2 # 小等腰直角三角形直角边
zjsjxxb=2**0.5 *zjb  # 小三角形斜边(根号2 × 直角边)
length=1.7*blsize # 风车杆长度
width=2/15*blsize # 风车杆宽度

# 定义风车绘制函数
def fongche():
    t.penup()
    t.goto(-205,-42)# 移动到风车中心位置
    t.begin_fill()
    t.pensize(4)
    t.pencolor("#321320")# 边框色(深棕色)
    t.fillcolor("#D2B48C")# 填充色(浅棕色,风车中心)
    t.circle(15)# 绘制风车中心圆
    t.end_fill()
    
    # 绘制风车杆
    t.penup()
    t.goto(-220,80)
    t.pendown()
    t.setheading(-90)# 画笔方向向下
    t.pensize(width)
    t.pencolor("#5f4a1d")# 风车杆颜色(深棕色)
    t.forward(length)
    t.pensize(2)
    t.backward(length)# 回退到风车中心,准备画风车叶片
    t.setheading(90)# 画笔方向向上
    
    # 循环绘制4组风车叶片(每组含1个小三角形+1个大三角形)
    for i in range(4):
        # 绘制小等腰直角三角形(深色叶片)
        t.color(scolor[i])  # 遍历深色列表设置颜色
        t.begin_fill()
        t.forward(zjb)
        t.left(90)
        t.forward(zjb)
        t.left(135)
        t.forward(zjsjxxb)
        t.end_fill()
 
        # 绘制大等腰直角三角形(浅色叶片)
        t.color(qcolor[i])  # 遍历浅色列表设置颜色
        t.begin_fill()
        t.backward(zjsjxxb)
        t.right(90)
        t.forward(bs)
        t.left(135)
        t.forward(blsize)
        t.end_fill()
 
        # 旋转180度,准备绘制下一组叶片
        t.right(180)
        t.penup()
 
# 定义眼球绘制所需的圆弧参数(迭代器:半径,弧角度数)
mling_circle_list = iter([
    (18, 360), (14, 360), (10, 360), (6, 360),
    (18, 360), (14, 360), (10, 360), (6, 360),
])
 
# 定义眼球绘制函数(4层叠加:眼白→虹膜→瞳孔→高光)
def mling_draw_eyeball(zb1,zb2,zb3,zb4):  
    for zb, color_ in zip([zb1,zb2,zb3,zb4], ['#ffffff', '#482d08', '#000000', '#ffffff']):
        t.penup()
        t.goto(*zb)# 解包坐标元组(x,y)
        t.pendown()
        t.begin_fill()
        t.setheading(0)# 画笔方向归零
        t.color(color_)# 设置填充色
        t.pencolor('#000000')# 眼球边框色(黑色)
        t.pensize(2)
        t.circle(*next(mling_circle_list))# 从迭代器取参数绘制圆
        t.end_fill()
 
# 绘制草莓熊身体轮廓(粉色主体)
t.penup()
p = t.home()# 回到坐标原点
t.pencolor("#321320")# 轮廓色(深棕色)
t.fillcolor("#cb3263")# 身体填充色(深粉色)
t.pensize(4)
t.goto(120,110)# 起始坐标
t.pendown()
t.begin_fill()
# 身体右侧轮廓
t.goto(200,0)
t.left(-40)
t.circle(-110,105)# 绘制头部右侧圆弧
t.left(75)
t.goto(170,-110)
t.left(-80)
t.circle(30,40)
t.left(60)
t.circle(-80,70)
t.left(83)
t.circle(-35,95)
t.goto(60,-270)
# 身体左侧轮廓
t.left(-80)
t.circle(-65,70)
t.left(63)
t.circle(35,30)
t.left(130)
t.circle(-65,70)
t.goto(-120,-270)
t.left(-110)
t.circle(-35,80)
t.left(83)
t.circle(-80,50)
t.left(60)
t.circle(-80,60)
t.left(60)
t.circle(30,30)
t.left(20)
t.circle(80,80)
t.left(-105)
t.circle(-70,150)
t.left(50)
t.circle(-170,50)
t.goto(120,110)# 回到起点闭合图形
t.end_fill()# 结束身体填充

# 绘制草莓熊面部白色区域(面部底色)
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#ffffff")# 白色填充
t.pensize(4)
t.goto(90,60)
t.pendown()
t.begin_fill()
t.right(30)
t.circle(-130,360)# 绘制圆形面部底色
t.end_fill()

# 绘制草莓熊左侧耳朵(浅肤色)
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#f3d2ad")# 耳朵填充色(浅肤色)
t.pensize(4)
t.goto(-250,-55)
t.seth(0)# 画笔方向归零
t.pendown()
t.begin_fill()
t.right(-55)
t.circle(-45,270)# 绘制耳朵圆弧
t.goto(-220,-75)
t.goto(-250,-55)# 闭合耳朵图形
t.end_fill()
 
# 调用风车绘制函数(添加风车装饰)
fongche()
 
# 绘制草莓熊右侧耳朵(浅肤色)
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#f3d2ad")
t.pensize(4)
t.goto(185,-90)
t.pendown()
t.begin_fill()
t.right(140)
t.circle(43,95)# 绘制耳朵圆弧
t.goto(185,-90)# 闭合耳朵图形
t.end_fill()

# 绘制草莓熊鼻子(深粉色)
t.penup()
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#cb3263')# 鼻子填充色(深粉色)
t.pensize(4)
t.begin_fill()
t.goto(21,0)
t.pendown()
t.circle(123,134)
t.left(-90)
t.circle(40,185)
t.left(-60)
t.circle(120,60)
t.left(-90)
t.circle(50,200)
t.left(-90)
t.circle(100,100)
t.left(-12)
t.circle(100,40)
t.goto(21,0)# 闭合鼻子图形
t.penup()
t.end_fill()

# 绘制草莓熊左侧面部白色装饰
t.penup()
t.goto(0, 0)
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#ffffff')
t.pensize(4)
t.begin_fill()
t.goto(-70,210)
t.left(140)
t.pendown()
t.circle(30,200)# 绘制白色装饰圆弧
t.goto(-70,210)# 闭合图形
t.penup()
t.end_fill()

# 绘制草莓熊右侧面部白色装饰
t.penup()
t.goto(0, 0)
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#ffffff')
t.pensize(4)
t.begin_fill()
t.goto(90,220)
t.left(45)
t.pendown()
t.circle(22,200)# 绘制白色装饰圆弧
t.goto(90,220)# 闭合图形
t.penup()
t.end_fill()

# 绘制草莓熊面部下方白色区域
t.penup()
t.goto(0, 0)
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#ffffff')
t.pensize(4)
t.begin_fill()
t.left(-98)
t.left(90)
t.goto(18,10)
t.pendown()
t.circle(100,134)
t.left(10)
t.circle(110,30)
t.left(10)
t.circle(160,40)
t.circle(85,40)
t.left(2)
t.circle(95,40)
t.left(5)
t.circle(95,60)
t.goto(18,10)# 闭合图形
t.penup()
t.end_fill()

# 绘制草莓熊右侧眉毛(深粉色)
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#8f3a52")# 眉毛填充色(深粉色)
t.pensize(2)
t.goto(25,240)
t.pendown()
t.begin_fill()
t.goto(60,235)
t.left(30)
t.fd(8)
t.left(90)
t.fd(22)
t.circle(90, 8)
t.left(20)
t.circle(90, 8)
t.left(20)
t.circle(90, 20)
t.left(40)
t.circle(50, 20)
t.end_fill()

# 绘制草莓熊右侧眉毛深色线条
t.penup()
t.pensize(12)
t.goto(-2,250)
t.pencolor("#4D1F00")# 线条色(深棕色)
t.fillcolor("#4D1F00")
t.pendown()
t.goto(60,240)
t.end_fill()

# 绘制草莓熊左侧眉毛(深粉色)
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#8f3a52")
t.pensize(2)
t.goto(-55,193)
t.pendown()
t.begin_fill()
t.left(65)
t.circle(-90, 25)
t.goto(-10,230)
t.left(30)
t.fd(8)
t.left(90)
t.fd(18)
t.circle(90, 8)
t.left(20)
t.circle(90, 10)
t.left(40)
t.circle(90, 30)
t.left(30)
t.circle(40, 20)
t.penup()
t.end_fill()

# 绘制草莓熊左侧眉毛深色线条
t.pensize(12)
t.goto(-63,195)
t.pencolor("#4D1F00")
t.fillcolor("#4D1F00")
t.pendown()
t.left(100)
t.circle(-85,45)
t.end_fill()
 
# 调用眼球绘制函数(绘制左右眼)
mling_draw_eyeball((-20,180), (-23,185), (-25,188), (-30,200)) # 左眼
mling_draw_eyeball((30, 193), (27, 200), (25,203), (20,213))   # 右眼
 
# 绘制草莓熊嘴巴区域(深粉色)
t.penup()
p = t.home()
t.pencolor("#321320")
t.fillcolor("#8f3a52")
t.pensize(3)
t.goto(25,105)
p = t.pos()
t.pendown()
t.begin_fill()
t.circle(85, 65)
t.left(16)
t.circle(30, 55)
t.left(20)
t.circle(145, 58)
t.left(8)
t.circle(20, 55)
t.left(8)
t.circle(50, 65)
t.left(-5)
t.circle(310, 8)
t.end_fill()

# 绘制草莓熊嘴唇(深粉色)
t.penup()
t.goto(0, 0)
t.seth(0)
t.pencolor('#321320')
t.fillcolor('#a93e54')# 嘴唇填充色(深粉色)
t.pensize(3)
t.begin_fill()
t.left(-20)
t.goto(9,66)
t.pendown()
t.circle(68,40)
t.left(10)
t.circle(65,40)
t.left(160)
t.circle(-75,85)
t.left(158)
t.circle(48,37)
t.goto(9,66)# 闭合嘴唇图形
t.penup()
t.end_fill()

# 绘制文字祝福(李长梅祝你永远开心)
t.color('#321320')
t.penup()
t.goto(380,60)
t.pendown()
t.write(" "
        "\n李\n长\n梅\n祝\n你\n永\n远\n开\n心",align="center",font=("黑体",20,"normal"))

# 隐藏画笔(避免影响画面美观)
t.penup()
t.goto(290,183)
t.pendown()
t.hideturtle()

# 绘制爱心花朵装饰(红色花瓣)
t.fillcolor("red")
t.begin_fill()
t.circle(10, 180)
t.circle(25, 110)
t.left(50)
t.circle(60, 45)
t.circle(20, 170)
t.right(24)
t.fd(30)
t.left(-8)# 原角度为10,此处调整为-8优化花瓣形状
t.circle(30, 110)
t.fd(20)
t.left(40)
t.circle(90, 70)
t.circle(30, 150)
t.right(30)
t.fd(15)
t.circle(80, 90)
t.left(15)
t.fd(45)
t.right(165)
t.fd(20)
t.left(155)
t.circle(150, 80)
t.left(50)
t.circle(150, 90)
t.end_fill()

# 绘制花瓣1
t.left(150)
t.circle(-90, 70)
t.left(20)
t.circle(75, 105)
t.setheading(60)
t.circle(80, 98)
t.circle(-90, 40)

# 绘制花瓣2
t.left(180)
t.circle(90, 40)
t.circle(-80, 98)
t.setheading(-83)

# 绘制叶子1(绿色)
t.fd(30)
t.left(90)
t.fd(25)
t.left(45)
t.fillcolor("green")
t.begin_fill()
t.circle(-80, 90)
t.right(90)
t.circle(-80, 90)
t.end_fill()
t.right(135)
t.fd(60)
t.left(180)
t.fd(85)
t.left(90)
t.fd(80)

# 绘制叶子2(绿色)
t.right(90)
t.right(45)
t.fillcolor("green")
t.begin_fill()
t.circle(80, 90)
t.left(90)
t.circle(80, 90)
t.end_fill()
t.left(135)
t.fd(60)
t.left(180)
t.fd(60)
t.right(90)
t.circle(200, 60)

# 保持窗口显示(绘制完成后不自动关闭)
t.done()
stdout
Standard output is empty