家里蹲太孤单?用 Python 画一只单身狗 | 原力计划

2020 年 2 月 28 日 CSDN

【CSDN编者按】这都快三月了,你复工没有?还是在家远程办公吗?省去了通勤时间的你,有木有觉得闲得慌?那就用Python画一只狗吧,还能娱乐还能学习,岂不美哉?

作者 | EE Sheep
责编 |伍杏玲
出品 | CSDN博客

Python Turtle 快速入门


Python的Turtle库可以画图,搞出许多有趣的可视化东西,是培养女朋友儿童编程兴趣的好帮手。

Turtle顾名思义,是一只小海龟。它根据函数指令的控制,在平面坐标系中移动,可以前行、后退、转弯、瞬移、原地画点……落笔时,它爬行留下指定颜色和粗细的路径;无论抬笔还是落笔时都可以圈地填色,画出有或无边界的平面图案。所谓海龟,其实就像机器人手中的画笔。只不过这个机器人走得非常精确,不需要PID。

1、画布与画笔设置

默认原点(0,0)在正中间,画笔向东(0°方向)移动。

我们知道py文件的第一行一般是:

   
   
     
import numpy  as npy
类似地,我们首先输入
   
   
     
from turtle  import *
这样的好处是没有必要在每个函数之前都写xx.了,有种满篇野函数的感觉。

home():将画笔置于(0,0)点向东状态

clear():清空turtle窗口,不改变画笔位置

reset():清空窗口,回复画笔起始位置

hideturtle():隐藏画笔的turtle形状

showturtle():显示画笔的turtle形状,默认状态是与画笔同色的箭头

screensize(canvwidth,canvheight,bg):参数分别为画布的宽,高,背景颜色。

setup(width,height,startx,starty):参数宽和高为整数时表示像素;为小数时,表示占据电脑屏幕的比例,startx和starty表示矩形窗口左上角顶点的位置,如果为空则窗口位于屏幕中心

pensize(size):设置画笔粗细

seth(degree):设置画笔方向,参数取值0~360 speed(speed):设置画笔移动速度,参数取值1~10的整数

color(color)和fillcolor(color):设置笔触颜色/填充颜色,参数可以是RGB三元组或字符串。字符串对应色卡如图:

直男朋友们注意一下,目测这里就有至少20种口红色号

2、 运动命令

fd(d):向前移动距离d

bd(d):向后移动距离d

right(degree):画笔方向向右转动degree度

left(degree):画笔方向向左转动degree度

goto(x,y):将画笔移动到(x,y)位置

stamp():绘制当前图形

undo():撤销上一动作

3、画笔控制

pd():画笔落下,移动时绘制图形

pu():画笔抬起,移动时不绘制图形

dot(diameter,color):以画笔位置为中心绘制一个指定直径和颜色的圆,不改变画笔位置

circle(radius,degree):绘制度数为degree的圆弧,规律如下图,可见半径和度数均可取正负值:

circle(radius,degree,step)与上条类似,将这条“圆弧”分段折线化,均匀分成step段。结束时,画笔方向为“圆弧”的切线。例如先分5段画半圆再沿画笔方向前进:

4、插入文字

write函数,三个参数分别为内容、对齐方式和渲染格式。使用样例如下,为了明确align参数的定义方式,绘制圆点指明:

   
   
     
goto(- 100, 0)

dot( 20)

write( "EESAST the best!", align= "right", font=( "华文隶书", 20, "bold"))  #右端对齐

goto( 100, 50)

dot( 20)

write( "I love THUEE!", align= "left", font=( "Tempus Sans ITC", 20, "bold"))  #左端对齐

画一只单身狗


1.FACE

从(0,0)开始,用朴素的方法,连接线段和90°圆弧绘制单身狗的脸(直男配色,直观体验)

   
   
     
#脸

pd()  #落笔

fd(25) 

#从起始状态(0,0)向东前行25像素

circle(100,90) 

#画一个半径100的1/4圆弧(图中绿色)

circle(120,90)

#再画一个半径120的1/4圆弧(图中蓝色)

fd(10) 

#前行10像素(图中粉色)

circle(120,90)

circle(100,90)

fd(25)

pu()  #抬笔

2.EYES

goto(x,y)到达合适的位置,和画脸一样绘制眼眶。画眼球的时候可以dot画点,也可以按如下方式填充圆形:

   
   
     
# 眼球,刚才画完抬过笔了

goto( 60, 100)

begin_fill()  #开始填充

circle( 17#眼球的轮廓


#如果不是闭合曲线,会连接首尾涂色


end_fill()  #结束填充

3.FINISH

类似地,通过计算(调参),画另一只眼睛,接着画嘴巴和耳朵,一只单身狗就画好啦!


送你一颗小心心


阅读完上面的内容,你应该轻松地学会了一个技能,下一步就是用来装X撩弟撩妹了。送大家一颗调好参数的小心心。还是拼接圆弧,毕竟小编太懒了。

   
   
     
size=90 

#这一行可以改,是小心心的大小参数



pu()

goto(0,-100) 

#这一行可以改,是小心心的起始位置



pd()

# 如果删掉这一行不落笔,就是没有边框的小心心



begin_fill()

seth(150)

fd(size)

circle(-3.74*size, 45)

circle(-1.43*size, 165)

left(120)

circle(-1.43*size, 165)

circle(-3.74*size, 45)

fd(size)

end_fill()
设置画笔颜色为红色,填充为粉色,效果就是这样啦!


原文链接:

https://blog.csdn.net/THU_COCO/article/details/104531684

声明:本文系CSDN博主原创文章,版权归作者所有。

《原力计划【第二季】- 学习力挑战》

正式开始

即日起至 3月21日

千万流量支持原创作者

更有专属【勋章】等你来挑战

推荐阅读 
微盟创始人孙涛勇回应员工删库; 字节跳动推“头条搜索”独立 App; C++ 20 规范完成| 极客头条
疫情病毒全部“抹杀”?用数据模型来解读传播抑制的效果差异!
为诺亚、北大提出GhostNet,使用线性变换生成特征图,准确率超MobileNet v3 | CVPR 2020
真实版“删库跑路”?程序员蓄意破坏线上生产环境!
新知识点!一文告诉你如何调试运行在Docker容器中的远程Node.js应用程序
远程办公是一阵“过渡风”还是会“继续燃烧”?
你点的每一个在看,我认真当成了喜欢
登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
还在修改博士论文?这份《博士论文写作技巧》为你指南
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
192+阅读 · 2020年3月12日
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
100行Python代码,轻松搞定神经网络
大数据文摘
4+阅读 · 2019年5月2日
sklearn 与分类算法
人工智能头条
7+阅读 · 2019年3月12日
python帅到没朋友的填充软件
运维帮
4+阅读 · 2018年5月30日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
代码这样写不止于优雅(Python版)
数说工作室
4+阅读 · 2017年7月17日
UPSNet: A Unified Panoptic Segmentation Network
Arxiv
4+阅读 · 2019年1月12日
3D-LaneNet: end-to-end 3D multiple lane detection
Arxiv
7+阅读 · 2018年11月26日
Arxiv
6+阅读 · 2018年10月3日
Neural Arithmetic Logic Units
Arxiv
5+阅读 · 2018年8月1日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
还在修改博士论文?这份《博士论文写作技巧》为你指南
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
192+阅读 · 2020年3月12日
相关资讯
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
100行Python代码,轻松搞定神经网络
大数据文摘
4+阅读 · 2019年5月2日
sklearn 与分类算法
人工智能头条
7+阅读 · 2019年3月12日
python帅到没朋友的填充软件
运维帮
4+阅读 · 2018年5月30日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
代码这样写不止于优雅(Python版)
数说工作室
4+阅读 · 2017年7月17日
Top
微信扫码咨询专知VIP会员