python绘图苹果_啥是佩奇,Python 告诉你!

news/2025/2/26 13:25:42

795a74d22655b41b01512c7b956e379d.gif

今天,

被《啥是佩奇》这支广告片刷屏了。

佩奇明明是个喜剧角色,

却看哭了所有人。

3b944e73ee0dae62de2320ef7b22dadc.png

《啥是佩奇》???

74aa7f543877996402d1b2e7a66951aa.png

快过年了,

在农村爷爷给城里的小孙子打电话,

小孙子说想要“佩奇”,

为了满足小孙子的愿望,

爷爷开始满村子找佩奇。

开片爷爷在电话这头的一段话就很抓人心,

全世界的爷爷都是这样疼孙儿的,

一下子就让观众有共情的心理。

一句“什么是佩奇?”

铺垫了爷爷接下来的一段寻找佩奇之路,

最后爷爷找到的佩奇骨络清奇,

却是圈主见过的全世界最可爱的小猪佩奇!

9de4ee9bcad1aa8e3468cdbea970ead0.png

不知道大家看完什么感觉,反正我看完是哭了。我看网友们也纷纷留言,说自己哭笑两重奏......

看着爷爷满村子找佩奇,我有点心疼了。为此我想用纯粹的Python来告诉爷爷,啥是佩奇?

6f2318b6a98465a78776677f0980c38e.png

这就是佩奇!

先看看效果视频:

74aa7f543877996402d1b2e7a66951aa.png

基本思路:选好画板大小,设置好画笔颜色,粗细,定位好位置,依次画鼻子,头、耳朵,眼睛,腮,嘴,身体,手脚,尾巴,完事。

都知道,turtle 是 Python 内置的一个比较有趣味的模块,俗称海龟绘图,它是基于 tkinter 模块打造,提供一些简单的绘图工具。

在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动。这个海龟带着一只钢笔,我们可以让海龟无论移动到哪都使用这只钢笔来绘制线条。通过编写代码,以各种很酷的模式移动海龟,我们可以绘制出令人惊奇的图片。使用海龟作图,我们不仅能够只用几行代码就创建出令人印象深刻的视觉效果,而且还可以跟随海龟看看每行代码如何影响到它的移动。这能够帮助我们理解代码的逻辑。所以海龟作图也常被用作新手学习 Python 的一种方式。更丰富详细的功能及知识可以参考官方文档:https://docs.python.org/3/library/turtle.html。

了解了tuttle的用法之后就可以开始实战了。

代码示例:

from turtle import*

def nose(x,y):#鼻子
    penup()#提起笔
    goto(x,y)#定位
    pendown()#落笔,开始画
    setheading(-30)#将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)
    begin_fill()#准备开始填充图形
    a=0.4
    for i in range(120):
        if 0<=i<30 or 60<=i<90:
            a=a+0.08
            left(3) #向左转3度
            forward(a) #向前走a的步长
        else:
            a=a-0.08
            left(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)#返回或设置pencolor和fillcolor
    end_fill()

    penup()
    setheading(0)
    forward(20)
    pendown()
    pencolor(255,155,192)
    setheading(10)
    begin_fill()
    circle(5)
    color(160,82,45)
    end_fill()

def head(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.4
    for i in range(60):
        if 0<=i<30 or 60<=i<90:
            a=a+0.08
            lt(3) #向左转3度
            fd(a) #向前走a的步长
        else:
            a=a-0.08
            lt(3)
            fd(a)
    end_fill()

def cheek(x,y):#腮
    color((255,155,192))
    penup()
    goto(x,y)
    pendown()
    setheading(0)
    begin_fill()
    circle(30)
    end_fill()

def mouth(x,y): #嘴
    color(239,69,19)
    penup()
    goto(x,y)
    pendown()
    setheading(-80)
    circle(30,40)
    circle(40,80)

def setting():          #参数设置
    pensize(4)
    hideturtle()        #使乌龟无形(隐藏)
    colormode(255)      #将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内
    color((255,155,192),"pink")
    setup(840,500)
    speed(10)

def main():
    setting()           #画布、画笔设置
    nose(-100,100)      #鼻子
    head(-69,167)       #头
    ears(0,160)         #耳朵
    eyes(0,140)         #眼睛
    cheek(80,10)        #腮
    mouth(-20,30)       #嘴
    done()

if __name__ == '__main__':
    main()

思路其实很简单,就是通过trutle模块实现基本的圆,椭圆,曲线等,难点在于,如何定位每个部位的位置(建议先草图画画)。

df88275a2217428c2ad260e389eac128.png

作者:丁彦军,一名痴恋于Python的码农,公共帐号:恋习Python,在这里我们一起用Python做些有意义的事。

声明:本文为作者投稿,版权归其个人所有。

【完】


ee83e664a10f44ce29e267c09e3e55e1.png

 热 文 推 荐 

☞ Windows 7 时代即将终结!

☞ 王欣“马桶 MT”改名“MT”;任正非点赞苹果;酷派 27 岁总裁上任 | 极客头条

☞ Java 这一年都经历了什么?

☞“对不起,你的离职是我的错!”

☞ Gartner的预言:通向混合IT之旅

☞ 阿里“菜鸟”AI?

☞ 刚刚!华为又被美国盯上了!

☞ 心疼!能为程序员男友做些什么吗?

0795e8aede675fefed789d4cbeb8088e.gif

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");print("点个好看吧!");printf("点个好看吧!");
cout <"点个好看吧!" <Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");alert("点个好看吧!")echo "点个好看吧!"

73a2eaefebd19be13221bc3b51c76dc7.gif点击“阅读原文”,打开 CSDN App 阅读更贴心!

cda2eb3c7c27cd2f5030d86d52fc8c66.png 喜欢就点击“好看”吧

http://www.niftyadmin.cn/n/712629.html

相关文章

Java——I/O流(二):字符流(概念理解+应用举例)

1.开篇 承接博主上一篇博文的字节流&#xff0c;在这篇博文中&#xff0c;我主要为大家介绍一下I/O流中的字符流&#xff0c;有关字节流的内容可以参考下面博文的链接&#xff1a;&#x1f447;&#x1f447;&#x1f447; https://blog.csdn.net/weixin_43823808/article/det…

tbox使用sm2算法_【学术论文】基于非对称算法的工控核心区内嵌认证技术

导读&#xff1a;近年来&#xff0c;工业互联网成为世界范围内的关注热点。作为数字浪潮下工业体系和互联网体系深度融合的产物&#xff0c;工业互联网被视为新一轮工业革命的关键支撑。工业互联网的建设和发展&#xff0c;是新一轮科技革命和产业变革的重大历史机遇&#xff0…

一阶广义差分模型_股票价格数学模型

股票价格数学模型是针对股票价格与时间之间的数量依存关系&#xff0c;通过抽象和简化&#xff0c;采用数学语言和方法&#xff0c;概括地或近似地表述出的一种数学结构。股票价格数学模型从数量关系上对股票价格运动作形式化的描述和刻画&#xff0c;可为研究股票价格运动现象…

Uva 1587:Box

题目传送门&#xff1a;https://cn.vjudge.net/problem/UVA-1587 #include <stdio.h>struct p {int w, h; }ps[6], cps[3];bool isSame(int i, int j) {return (ps[i].w ps[j].w && ps[i].h ps[j].h)|| (ps[i].w ps[j].h && ps[i].h ps[j].w); }boo…

洛谷P1746-离开中山路(BFS)

题目背景&#xff1a; 《爱与愁的故事第三弹shopping》最终章。 题目描述&#xff1a; 爱与愁大神买完东西后&#xff0c;打算坐车离开中山路。现在爱与愁大神在x1,y1处&#xff0c;车站在x2,y2处。现在给出一个nn&#xff08;n<1000&#xff09;的地图&#xff0c;0表示马路…

解决Ubuntu无法从外部应用启动Chrome打开链接的问题

遇到的问题&#xff1a;从外部应用&#xff08;如WPS Presentation&#xff09;打开连接后&#xff0c;chrome只显示一个空的标签&#xff0c;不会自动跳转 平台&#xff1a;Ubuntu 16.04 Desktop 解决办法&#xff1a;https://askubuntu.com/questions/689449/external-links…

php 字符串截取_php+mysql模拟队列发送邮件,能不能见网友就靠这封邮件了

邮件发送原理telnet命令模拟邮件发送&#xff1a;1、cmd命令下telnet连接上QQ的smtp服务器telnet smtp.163.com 25遇到问题以及解决办法&#xff1a;telnet命令错误控制面板下windows功能开启telnet客户端后重新运行即可成功2、和smtp服务器打招呼helo Miss (hi可以为任意其他英…

epoll实现机制分析

本文只介绍epoll的主要流程而不是分析源代码&#xff0c;如果需要了解更多的细节可以自己翻阅相关的内核源代码. 相关内核代码: fs/eventpoll.c 判断一个tcp套接字上是否有激活事件:net/ipv4/tcp.c:tcp_poll函数 每个epollfd在内核中有一个对应的eventpoll结构对象.其中关键的成…