点击蓝字 关注我们

哈喽,朋友们,又见面了!今天我们来学习一个超级可爱的Python项目吧?大家肯定都认识小猪佩奇,对吧?今天我们就用Python的turtle模块来画一个可爱的小猪佩奇!

真正的课程导入语:同学们!有没有想过用代码画出可爱的小猪佩奇?今天的Python课堂,我们就要解锁超可爱的"小猪佩奇绘制"项目!想象一下:你亲手编写的代码,让电脑画出一个红红的、胖胖的小猪佩奇,还有绿绿的草地和蓝蓝的天空。这一切都能在Python里实现!通过这节课,我们会学会函数调用、循环语句、颜色设置这些核心编程技巧,更能锻炼逻辑思维和创造力。接下来,就让我们一起化身小小画家,用代码画出属于自己的小猪佩奇吧!准备好开启这场编程艺术之旅了吗?现在,Let's code!

(扫码体验并获取完整代码)
我希望你能通过作品效果,总结作品的关键操作步骤。
绘制背景(草地和天空)
绘制小猪佩奇的头部
绘制小猪佩奇的耳朵
绘制小猪佩奇的眼睛
绘制小猪佩奇的鼻子
绘制小猪佩奇的脸颊
绘制小猪佩奇的嘴巴
绘制小猪佩奇的身体
绘制小猪佩奇的四肢
绘制小猪佩奇的尾巴
绘制天空中的云朵
你总结的可能跟我不一样,但是大差不差,也许你的更好。
思考时间
turtle模块:Python的绘图模块,就像一支神奇的画笔,可以在屏幕上画出各种图形
小猪佩奇绘制逻辑├── 初始化设置│ ├── 设置画笔大小│ ├── 隐藏画笔(海龟)│ ├── 设置颜色模式│ ├── 设置背景色│ └── 设置绘制速度├── 绘制背景│ ├── 绘制草地│ └── 绘制天空├── 绘制小猪佩奇│ ├── 绘制头部│ ├── 绘制耳朵│ ├── 绘制眼睛│ ├── 绘制鼻子│ ├── 绘制脸颊│ ├── 绘制嘴巴│ ├── 绘制身体│ ├── 绘制四肢│ └── 绘制尾巴├── 绘制云朵│ ├── 绘制第一朵云│ └── 绘制第二朵云└── 完成绘制
我希望你在看下面过程之前,你自己能根据作品效果做出至少80%(做不出来的话,你要清楚的知道自己哪里不会哪里不清晰)。这样你在看下面的操作之后才能真正学到一些"知识",不经过自己思考就得到的答案,不深刻,逻辑思维也不会得到提升。
代码解析:
defsetting():"""设置参数"""pensize(5)# 隐藏海龟hideturtle()colormode(255)color((255, 155, 192), "pink")setup(840, 700)speed(10)
这段代码的作用是设置绘图的基本参数:
pensize(5):设置画笔的粗细为5,就像我们选择一支5号的画笔
hideturtle():隐藏海龟(画笔),这样绘图时就不会看到画笔在移动
colormode(255):设置颜色模式为255,这样我们可以用RGB颜色值来设置颜色
color((255, 155, 192), "pink"):设置画笔颜色为粉色,填充颜色也为粉色
setup(840, 700):设置画布的大小为840x700像素,就像我们准备一张840x700的画纸
speed(10):设置绘图速度为10,数字越大速度越快,这样绘图时不会太慢
为什么要这样设计呢?因为在开始绘图前,我们需要做一些准备工作,就像我们画画前要准备好画笔、画纸一样。
代码解析:
defbackg(x):penup()goto(-420, x)setheading(0)fillcolor(50, 205, 50)begin_fill()forward(840)right(90)forward(300)right(90)forward(840)right(90)forward(300)end_fill()setheading(0)fillcolor(0, 191, 255)begin_fill()forward(840)left(90)forward(600)left(90)forward(840)left(90)forward(600)end_fill()
这段代码的作用是绘制背景,包括草地和天空:
penup():抬起画笔,这样移动时不会留下痕迹
goto(-420, x):移动画笔到左上角的位置,准备开始绘制
setheading(0):设置画笔的方向为向右(0度方向)
首先绘制草地:填充颜色为绿色,绘制一个长方形
然后绘制天空:填充颜色为蓝色,绘制一个长方形
为什么要这样设计呢?因为我们需要一个漂亮的背景,让小猪佩奇看起来像是在户外玩耍一样。
代码解析:
defhead(x, y):"""画头"""color((255, 155, 192), "pink")penup()goto(x, y)setheading(0)pendown()begin_fill()setheading(180)circle(300, -30)circle(100, -60)circle(80, -100)circle(150, -20)circle(60, -95)setheading(161)circle(-300, 15)penup()goto(-100, 100)pendown()setheading(-30)a = 0.4foriinrange(60):if0<= i<30or60<= i<90:a = a+0.08lt(3) # 向左转3度fd(a) # 向前走a的步长else:a = a-0.08lt(3)fd(a)end_fill()
这段代码的作用是绘制小猪佩奇的头部:
设置画笔颜色和填充颜色为粉色
移动画笔到指定位置,开始绘制
使用circle()函数绘制头部的轮廓,通过不同大小和角度的圆来组成头部的形状
最后绘制头部的细节,使用循环和变量a来绘制头部的曲线部分
begin_fill()和end_fill()之间的部分会被填充为粉色
为什么要这样设计呢?因为小猪佩奇的头部是一个不规则的形状,我们需要用多个圆和曲线来组成它,就像我们用不同的积木块来搭建一个形状一样。
代码解析:
defears(x, y):"""画耳朵"""color((255, 155, 192), "pink")penup()goto(x, y)pendown()begin_fill()setheading(100)circle(-50, 50)circle(-10, 120)circle(-50, 54)end_fill()penup()setheading(90)forward(-12)setheading(0)forward(30)pendown()begin_fill()setheading(90)circle(-50, 50)circle(-10, 120)circle(-50, 56)end_fill()
这段代码的作用是绘制小猪佩奇的两只耳朵:
首先绘制第一只耳朵,使用circle()函数绘制耳朵的形状
然后移动画笔到另一个位置,绘制第二只耳朵
每只耳朵都是一个粉色的填充形状
为什么要这样设计呢?因为耳朵是小猪佩奇的重要特征,我们需要把它们画出来,让小猪佩奇看起来更可爱。
代码解析:
defeyes(x, y):"""画眼睛"""color((255, 155, 192), "white")penup()setheading(90)forward(-20)setheading(0)forward(-95)pendown()begin_fill()circle(15)end_fill()color("black")penup()setheading(90)forward(12)setheading(0)forward(-3)pendown()begin_fill()circle(3)end_fill()color((255, 155, 192), "white")penup()seth(90)forward(-25)seth(0)forward(40)pendown()begin_fill()circle(15)end_fill()color("black")penup()setheading(90)forward(12)setheading(0)forward(-3)pendown()begin_fill()circle(3)end_fill()
这段代码的作用是绘制小猪佩奇的两只眼睛:
首先绘制白色的眼白部分,使用circle(15)绘制一个15像素的圆
然后在眼白中间绘制黑色的眼珠,使用circle(3)绘制一个3像素的圆
然后移动画笔到另一个位置,绘制第二只眼睛
为什么要这样设计呢?因为眼睛是心灵的窗户,我们需要把小猪佩奇的眼睛画得大大的、黑黑的,让它看起来更可爱、更有精神。
代码解析:
defnose(x, y):"""画鼻子"""pensize(5)pencolor((255, 155, 192))penup()# 将海龟移动到指定的坐标goto(x, y)pendown()# 设置海龟的方向(0-东、90-北、180-西、270-南)setheading(-30)begin_fill()fillcolor(255, 192, 203)a = 0.4foriinrange(120):if0<= i<30or60<= i<90:a = a+0.08# 向左转3度left(3)# 向前走forward(a)else:a = a-0.08left(3)forward(a)end_fill()penup()setheading(90)forward(25)setheading(0)forward(10)pendown()# 设置画笔的颜色(红, 绿, 蓝)pencolor(255, 155, 192)setheading(10)begin_fill()circle(5)color(160, 82, 45)end_fill()penup()setheading(0)forward(20)pendown()pencolor(255, 155, 192)setheading(10)begin_fill()circle(5)color(160, 82, 45)end_fill()
这段代码的作用是绘制小猪佩奇的鼻子:
设置画笔粗细为5,颜色为粉色
移动画笔到指定位置,开始绘制鼻子的轮廓
使用循环和变量a来绘制鼻子的曲线形状
填充颜色为粉色
然后在鼻子的两端绘制两个黑色的鼻孔,使用circle(5)绘制5像素的圆
为什么要这样设计呢?因为鼻子是小猪佩奇的重要特征,我们需要把它画得红红的、圆圆的,让它看起来更可爱。
代码解析:
defcheek(x, y):"""画脸颊"""color((255, 155, 192))penup()goto(x, y)pendown()setheading(0)begin_fill()circle(30)end_fill()
这段代码的作用是绘制小猪佩奇的脸颊:
设置画笔颜色为粉色
移动画笔到指定位置
使用circle(30)绘制一个30像素的圆作为脸颊
填充颜色为粉色
为什么要这样设计呢?因为小猪佩奇的脸颊是红红的,这是它的特点之一,让它看起来更可爱、更有气色。
代码解析:
defmouth(x, y):"""画嘴巴"""color(239, 69, 19)penup()goto(x, y)pendown()setheading(-80)circle(30, 40)circle(40, 80)
这段代码的作用是绘制小猪佩奇的嘴巴:
设置画笔颜色为红色
移动画笔到指定位置
使用circle()函数绘制嘴巴的曲线形状
为什么要这样设计呢?因为嘴巴是表情的重要部分,我们需要把它画出来,让小猪佩奇看起来更生动。
代码解析:
defbody(x, y):'''画身体'''penup()goto(x, y)pencolor('red')fillcolor(250, 106, 106)pendown()begin_fill()setheading(-66)circle(-450, 17)setheading(180)forward(185)setheading(85)circle(-450, 17)end_fill()'''右手'''penup()goto(110, -45)pendown()pensize(8)pencolor(255, 192, 203)setheading(30)circle(-400, 10)penup()goto(167, -5)pendown()setheading(-120)forward(20)left(100)forward(20)'''左手'''penup()goto(-25, -45)pendown()pencolor(255, 192, 203)setheading(150)circle(400, 10)penup()goto(-78, -6)pendown()setheading(-60)forward(20)right(100)forward(20)
这段代码的作用是绘制小猪佩奇的身体和四肢:
首先绘制身体,使用circle()函数绘制身体的轮廓,填充颜色为红色
然后绘制右手,使用circle()函数绘制手臂的曲线,然后绘制手的形状
最后绘制左手,同样使用circle()函数和直线来绘制
为什么要这样设计呢?因为身体是小猪佩奇的重要部分,我们需要把它画得胖胖的、红红的,让它看起来更可爱。手臂的曲线让它看起来更自然。
代码解析:
deffeet1(x, y):pensize(7)pencolor(255, 192, 203)penup()goto(x, y)setheading(-90)pendown()forward(10)penup()goto(x-12, y-10)pendown()pencolor(238, 201, 0)fillcolor(238, 230, 132)begin_fill()setheading(0)forward(24)right(90)forward(36)right(90)forward(40)circle(-10, 180)forward(16)left(90)forward(12)end_fill()deffeet2(x, y):pensize(7)pencolor(255, 192, 203)penup()goto(x, y)setheading(-90)pendown()forward(10)penup()goto(x-12, y-10)pendown()pencolor(238, 201, 0)fillcolor(238, 230, 132)begin_fill()setheading(0)forward(24)right(90)forward(36)right(90)forward(40)circle(-10, 180)forward(16)left(90)forward(12)end_fill()
这段代码的作用是绘制小猪佩奇的两只脚:
feet1()函数绘制第一只脚,包括粉色的脚踝和黄色的鞋子
feet2()函数绘制第二只脚,同样包括粉色的脚踝和黄色的鞋子
使用circle()函数和直线来绘制鞋子的形状
填充颜色为黄色,让鞋子看起来更漂亮
为什么要这样设计呢?因为小猪佩奇需要脚来走路,黄色的鞋子是它的标志之一,让它看起来更时尚。
代码解析:
deftail(x, y):pensize(8)penup()goto(x, y)pendown()pencolor(255, 192, 203)setheading(-5)circle(30, 100)circle(10, 180)circle(20, 150)
这段代码的作用是绘制小猪佩奇的尾巴:
设置画笔粗细为8,颜色为粉色
移动画笔到指定位置
使用circle()函数绘制尾巴的卷曲形状
为什么要这样设计呢?因为小猪佩奇的尾巴是卷曲的,这是它的特点之一,让它看起来更可爱。
代码解析:
defcloude1(x, y):"""画云"""penup()goto(x, y)setheading(90)fillcolor(255, 255, 255)begin_fill()a = 0.4foriinrange(120):if0<= i<30or60<= i<90:a = a+0.14# 向左转3度left(3)# 向前走forward(a)else:a = a-0.15left(3)forward(a)end_fill()defcloude2(x, y):"""画云"""penup()goto(x, y)setheading(90)fillcolor(255, 255, 255)begin_fill()a = 0.4foriinrange(120):if0<= i<30or60<= i<90:a = a+0.15# 向左转3度left(3)# 向前走forward(a)else:a = a-0.13left(3)forward(a)end_fill()
这段代码的作用是绘制天空中的两朵云:
cloude1()函数绘制第一朵云,使用循环和变量a来绘制云朵的形状
cloude2()函数绘制第二朵云,同样使用循环和变量a来绘制云朵的形状
填充颜色为白色,让云朵看起来更真实
为什么要这样设计呢?因为天空中飘着白云,让整个画面看起来更漂亮、更有层次感。
代码解析:
defmain():"""主函数"""setting()backg(0)body(105, -20)nose(-100, 100)head(-69, 167)ears(0, 160)eyes(0, 140)cheek(80, 10)mouth(-20, 30)feet1(10, -150)feet2(90, -150)tail(130, -110)cloude1(-200, 200)cloude2(300, 300)done()if__name__ == '__main__':main()
这段代码是程序的主函数,它的作用是调用前面定义的所有函数来绘制完整的小猪佩奇:
首先调用setting()函数设置绘图参数
然后调用backg(0)函数绘制背景
接着依次调用各个函数绘制小猪佩奇的各个部分:身体、鼻子、头部、耳朵、眼睛、脸颊、嘴巴、脚、尾巴
然后调用cloude1()和cloude2()函数绘制云朵
最后调用done()函数完成绘图
if __name__ == '__main__': main()是Python的标准写法,当直接运行这个文件时,会执行main()函数
为什么要这样设计呢?因为我们需要一个主函数来组织所有的绘制步骤,就像我们画画时要按照一定的顺序来画:先画背景,再画身体,再画头部,再画细节。
如果想让小猪佩奇更有趣,你可以尝试添加一些新功能:
添加太阳:在天空中画一个黄色的太阳,让画面更明亮
添加草地细节:在草地上画一些小花,让草地更漂亮
添加彩虹:在天空中画一道彩虹,让画面更丰富多彩
添加小猪乔治:在小猪佩奇旁边画一个小一点的小猪乔治,让他们成为好朋友
添加房子:在背景中画一个房子,让小猪佩奇有一个家
添加动画效果:让小猪佩奇的耳朵或尾巴动起来,让它更生动
添加颜色选择:让用户可以选择小猪佩奇的颜色,比如粉色、蓝色、绿色等
你能尝试实现这些功能吗?
通过分析这个"小猪佩奇绘制"程序,我们学到了以下重要的编程概念:
1. 函数的使用:把不同的绘制任务分成不同的函数,比如head()函数画头部,eyes()函数画眼睛,这样代码更整洁,更容易理解和修改。就像我们把不同的任务分给不同的人来做一样。
2. 循环语句:使用for循环来绘制曲线形状,比如头部的轮廓、云朵的形状等。循环可以让我们重复执行相同的操作,节省代码。
3. 颜色设置:使用RGB颜色值来设置不同的颜色,比如粉色的身体、红色的衣服、黄色的鞋子等。颜色让画面更漂亮、更有层次感。
4. 坐标系统:使用turtle模块的坐标系统来定位绘制的位置,比如goto(x, y)移动到指定的坐标位置。坐标就像地图上的位置,告诉我们东西应该画在哪里。
5. 图形绘制:使用circle()函数绘制圆形和曲线,使用直线绘制简单的形状。不同的图形组合起来,就可以画出复杂的图案。
6. 填充效果:使用begin_fill()和end_fill()来填充图形的颜色,让画面更饱满、更漂亮。
7. 模块化编程:把整个程序分成不同的部分,每个部分负责一个具体的任务,这样代码更清晰,更容易维护和修改。就像我们整理房间时,把不同的东西放在不同的地方一样。
好了,今天的"小猪佩奇绘制"项目就讲到这里啦!希望你们都能做出自己的小猪佩奇,甚至可以尝试画出小猪乔治、小羊苏西等其他角色!如果有什么问题,欢迎在评论区留言哦!我们下期再见~拜拜~
喜欢这篇文章的话,记得点赞、收藏、转发给你的小伙伴们哦!我们下期再见!👋

。即使下载了,也要上传,不是特别方便,尤其是不好查找。

关注即可领取,下载不限速,方便快捷。



微信号|scratch-coco