在Python的世界里,有一个充满趣味的模块叫做 ,它就像一支神奇的画笔,能让我们在屏幕上绘制出各种生动的图形。今天,我们就来探索一段用 模块绘制可爱卡通形象的代码,看看如何通过一行行代码,让一个萌萌的卡通角色在屏幕上逐渐成型。
在开始绘制之前,我们需要先做好准备工作,就像画家在画画前要准备好画布和颜料一样:
import time
import turtle as t
t.pensize(4) # 设置画笔的大小
t.colormode(255) # 设置颜色范围为0-255
t.color((255,155,192),"pink") # 设置画笔颜色和填充颜色为粉色系
t.setup(840,500) # 设置主窗口的大小为840*500
t.speed(10) # 设置画笔速度为10,这是比较快的绘制速度
这段代码就像是在布置画室:我们导入了必要的模块,设置了画笔的粗细、颜色模式,选择了柔和的粉色作为主要色调,还准备了一块840×500像素的"画布",最后让画笔以较快的速度工作,以便我们能尽快看到绘制效果。
鼻子是面部的重要特征,我们先来绘制这个卡通形象的鼻子:
#鼻子
t.pu() # 提笔,移动时不绘制
t.goto(-100,100) # 移动到坐标(-100,100)
t.pd() # 下笔,开始绘制
t.seth(-30) # 设置笔的角度为-30°
t.begin_fill() # 开始外形填充
a=0.4
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.08
t.lt(3) # 向左转3度
t.fd(a) # 向前走a的步长
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill() # 依据轮廓填充
# 绘制鼻孔
t.pu()
t.seth(90) # 笔的角度为90度
t.fd(25) # 向前移动25
t.seth(0) # 转换画笔角度为0度
t.fd(10)
t.pd()
t.pencolor(255,155,192) # 设置画笔颜色
t.seth(10)
t.begin_fill()
t.circle(5) # 画一个半径为5的圆
t.color(160,82,45) # 设置为棕色
t.end_fill()
t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255,155,192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160,82,45)
t.end_fill()
这里我们使用了一个巧妙的循环来绘制鼻子的形状,通过不断调整步长和角度,形成了一个可爱的鼻尖形状。然后又在鼻尖上绘制了两个小小的棕色鼻孔,让鼻子看起来更加逼真。代码中的 pu() 和 pd() 就像画家提起和放下画笔,begin_fill() 和 end_fill() 则告诉程序需要填充颜色的区域。
鼻子画好后,我们来绘制卡通形象的头部:
#头
t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
# 绘制头部轮廓
t.seth(180)
t.circle(300,-30) # 顺时针画一个半径为300,圆心角为30°的圆
t.circle(100,-60)
t.circle(80,-100)
t.circle(150,-20)
t.circle(60,-95)
t.seth(161)
t.circle(-300,15)
# 回到起点并完成填充
t.pu()
t.goto(-100,100)
t.pd()
t.seth(-30)
a=0.4
for i in range(60):
if 0<=i<30 or 60<=i<90:
a=a+0.08
t.lt(3)
t.fd(a)
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
头部的绘制采用了多个圆弧组合的方式,通过不同半径和角度的圆弧,勾勒出一个圆润可爱的头部形状。这里我们可以看到 turtle模块强大的绘图能力,仅仅通过 circle() 函数就能绘制出各种弧度的曲线,组合成我们需要的形状。
接下来,我们要为这个卡通形象添加一对灵动的耳朵:
#耳朵
t.color((255,155,192),"pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
# 绘制第一只耳朵
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,54)
t.end_fill()
# 绘制第二只耳朵
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50,50)
t.circle(-10,120)
t.circle(-50,56)
t.end_fill()
耳朵的绘制同样使用了圆弧组合的方式,两只耳朵对称地分布在头部两侧。这里需要注意的是,circle() 函数中的负号表示绘制圆弧的方向,通过合理控制方向和角度,我们就能得到想要的耳朵形状。
眼睛是心灵的窗户,我们来为这个卡通形象添加一双明亮的眼睛:
#眼睛
t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15) # 绘制白色眼球
t.end_fill()
# 绘制瞳孔
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
# 绘制另一只眼睛
t.color((255,155,192),"white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
眼睛的绘制分为两个部分:白色的眼球和黑色的瞳孔。我们先绘制一个白色的圆形作为眼球,然后在眼球的适当位置绘制一个更小的黑色圆形作为瞳孔。两只眼睛对称分布,让这个卡通形象看起来更加有神。
现在,我们来为这个卡通形象增添一些可爱的细节——腮帮和嘴巴:
#腮
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30) # 绘制一个圆形的腮帮
t.end_fill()
#嘴
t.color(239,69,19) # 设置为红色
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30,40) # 绘制一段圆弧作为嘴巴
t.circle(40,80)
腮帮的绘制非常简单,就是一个粉色的圆形,位于脸部的两侧,增添了几分可爱。嘴巴则使用了两段不同半径的圆弧,组合成一个微笑的表情,红色的嘴巴让整个形象更加生动。
接下来,我们要绘制这个卡通形象的身体和四肢,让它更加完整:
#身体
t.color("red",(255,99,71)) # 设置轮廓为红色,填充为橙色
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
# 绘制身体轮廓
t.seth(-130)
t.circle(100,10)
t.circle(300,30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300,30)
t.circle(100,3)
# 切换颜色,绘制身体的另一部分
t.color((255,155,192),(255,100,100))
t.seth(-135)
t.circle(-80,63)
t.circle(-150,24)
t.end_fill()
#手
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300,15) # 绘制一只手
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20,90) # 绘制手部细节
# 绘制另一只手
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300,15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20,90)
#脚
t.pensize(10) # 增大画笔粗细
t.color((240,128,128)) # 设置为浅粉色
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15) # 进一步增大画笔粗细
t.fd(20) # 绘制脚趾
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20) # 绘制另一只脚的脚趾
身体的绘制使用了多种颜色和不同的圆弧组合,形成了一个穿着红色衣服的身体。手臂的绘制相对简单,使用了圆弧和直线的组合。脚部的绘制则增大了画笔的粗细,让脚部看起来更加结实,黑色的脚趾增添了细节。
最后,我们为这个卡通形象添加一条俏皮的尾巴,完成整个绘制:
#尾巴
t.pensize(4) # 恢复画笔粗细
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70,20) # 绘制一段圆弧
t.circle(10,330) # 绘制一个几乎完整的小圆
t.circle(70,30) # 绘制另一段圆弧
尾巴的绘制使用了三段圆弧,形成了一个卷曲的尾巴形状,与整个卡通形象的可爱风格相呼应。
当这段代码运行时,我们会看到一个粉色的卡通形象在屏幕上逐渐成型:从鼻子开始,到头部、耳朵、眼睛,再到身体、四肢和尾巴,每一个部分都慢慢呈现,最终组合成一个完整的、萌萌的卡通形象。
这个绘制过程展示了 turtle模块的强大功能,它让我们能够通过代码来创造艺术。如果你对这个形象感兴趣,还可以尝试修改代码中的颜色、尺寸和形状,创造出属于你自己的独特卡通形象。你可以调整鼻子的大小、改变眼睛的颜色,或者为它添加一顶帽子、一件衣服,让它更加个性化。
通过这段代码,我们不仅学会了如何使用 turtle模块绘制复杂的图形,还体验了编程与艺术结合的乐趣。这就是编程的魅力,它不仅是一种技术,更是一种表达和创造的方式。