Python中使用小海龟画图
一、画笔
在画布上,默认画布中心为坐标原点,且隐藏着一个直角坐标系,小海龟的初始正方向规定为X轴的正方向。使用小海龟绘图时,确定方向与距离进行绘制图像。
1.画笔自身属性
命令 | 说明 |
---|---|
turtle.pensize() | 设置画笔的宽度 |
turtle.pencolor() | 设置画笔的颜色,可以使用“black”“red”或者RGB3元组 |
turtle.speed() | 设置画笔的移动速度,参数的范围在[0,10]之间的整数,数字越大,速度越快 |
2.画笔运动属性
命令 | 说明 |
---|---|
turtle.forward(distance) | 向当前画笔方向移动distance像素长 |
turtle.backward(distance) | 向当前画笔相反方向移动distance像素长度 |
turtle.right(degree) | 顺时针移动degree° |
turtle.left(degree) | 逆时针移动degree° |
turtle.pendown() | 移动时绘制图形,缺省时也为绘制 |
turtle.goto(x,y) | 将画笔移动到坐标为x,y的位置 |
turtle.penup() | 移动时不绘制图形,提起笔,用于另起一个地方绘制时用 |
turtle.speed(speed) | 画笔绘制的速度范围[0,10]整数 |
turtle.circle() | 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |
3.画笔的控制命令
命令 | 说明 |
---|---|
turtle.pensize(width) | 绘制图形时的宽度 |
turtle.pencolor() | 画笔颜色 |
turtle.fillcolor(colorstring) | 绘制图形的填充颜色 |
turtle.color(color1, color2) | 同时设置pencolor=color1, fillcolor=color2 |
turtle.filling() | 返回当前是否在填充状态 |
turtle.begin_fill() | 准备开始填充图形 |
turtle.end_fill() | 填充完成; |
turtle.hideturtle() | 隐藏箭头显示; |
turtle.showturtle() | 与hideturtle()函数对应 |
4.其他操作:
turtle.hideturtle() # 隐藏小海龟画笔 turtle.mainloop() # 保留最后图像
二、图像展示
1.Mercedes LOGO
奔驰标志 1.0
奔驰标志 2.0
奔驰标志 3.0
附 3.0版本代码如下:
import turtle as t import time R = 150 r = R - 10t.pensize(10) t.color("black","white") t.speed(10) t.circle(R,360) # 画圆圈 t.penup() t.left(90) t.forward(R) t.pensize(1) t.pendown() t.forward(R) t.pensize(1) t.fillcolor("black") # 左侧三角形 t.begin_fill() t.left(170) t.forward(r) t.right(180) t.forward(r) t.right(170) t.forward(R) t.right(60) t.forward(R) t.right(170) t.forward(r) t.end_fill() # 下面三角形 t.right(180) t.forward(r) t.begin_fill() t.left(160) t.forward(r) t.right(180) t.forward(r) t.right(170) t.forward(R) t.right(60) t.forward(R) t.right(170) t.forward(r) t.end_fill() # 右边三角形 t.right(180) t.forward(r) t.begin_fill() t.left(160) t.forward(r) t.right(180) t.forward(r) t.right(170) t.forward(R) t.right(60) t.forward(R) t.right(170) t.forward(r) t.end_fill()t.hideturtle() # 隐藏小海龟画笔 t.mainloop() # 保留图像
奔驰标志3.0代码
2. 画方格
# 画方格
import turtle as t
t.pensize(1)
for i in range(1,300,2):t.left(90)t.fd(i*2)
3.来盘蚊香
import turtle as t
import timeR = 150t.speed(100)
t.pensize(3)
t.color("blue")for i in range(50):t.circle(R-i*3, 180)
4.Tencent LOGO
公企鹅效果图
母企鹅效果图
附企鹅代码:
import turtle import timedef head():#配置画笔属性turtle.fillcolor("black")turtle.color("black")turtle.colormode(255)turtle.speed(1)#绘制母企鹅头部 turtle.penup()turtle.goto(-300,350)turtle.seth(0)turtle.pendown()turtle.begin_fill()turtle.circle(-200,-110) turtle.penup()turtle.goto(-300,350)turtle.pendown()turtle.seth(0)turtle.circle(-200,110) turtle.seth(213)turtle.circle(-345,66)turtle.end_fill()def lefteye():#配置画笔属性 turtle.Turtle().screen.delay(0)turtle.fillcolor("white")turtle.speed(1)turtle.colormode(255)#绘制母企鹅的左眼 turtle.pu()turtle.goto(-350,275)turtle.seth(180)turtle.pd()turtle.begin_fill()#画椭圆a=1.0for i in range(120):if 0<=i<30 or 60<=i<90:a=a+0.08turtle.lt(3) #向左转3度turtle.fd(a) #向前走a的步长else:a=a-0.08turtle.lt(3)turtle.fd(a)turtle.pu()turtle.end_fill()#绘制左眼眼影 turtle.begin_fill()turtle.fillcolor("pink")turtle.pu()turtle.goto(-378,255)turtle.pendown()turtle.color("pink")turtle.seth(15)turtle.circle(-100,35)turtle.pu()turtle.goto(-350,275)turtle.seth(180)a=1for i in range(20):if 0<=i<30 or 60<=i<90:a=a+0.08turtle.lt(3) turtle.fd(a) else:a=a-0.08turtle.lt(3)turtle.fd(a)turtle.goto(-350,275)turtle.seth(0)a=1for i in range(20):if 0<=i<30 or 60<=i<90:a=a+0.08turtle.rt(3) turtle.fd(a) else:a=a-0.08turtle.lt(3)turtle.fd(a)turtle.pu()turtle.end_fill()#绘制睫毛 turtle.pu()turtle.goto(-350,275)turtle.seth(180)turtle.pd()a=1for i in range(20):if 0<=i<30 or 60<=i<90:a=a+0.08turtle.lt(3) turtle.fd(a) else:a=a-0.08turtle.lt(3)turtle.fd(a)turtle.pensize(3)turtle.color(242,156,177)turtle.circle(-20,190)turtle.pensize(1)#绘制母企鹅的左眼珠turtle.color("black")turtle.fillcolor("black")turtle.begin_fill()turtle.pu()turtle.goto(-330,245)turtle.seth(180)turtle.pd()turtle.begin_fill() a=0.01for i in range(120):if 0<=i<30 or 60<=i<90:a=a+0.05turtle.lt(3) turtle.fd(a) else:a=a-0.05turtle.lt(3)turtle.fd(a)turtle.pu()turtle.end_fill()def righteye():#配置画笔属性 turtle.Turtle().screen.delay(0)turtle.fillcolor("white")turtle.speed(1)turtle.colormode(255)#绘制母企鹅的右眼 turtle.pu()turtle.goto(-250,275)turtle.seth(180)turtle.pd()turtle.begin_fill()a=1.0for i in range(120):if 0<=i<30 or 60<=i<90:a=a+0.08turtle.lt(3) turtle.fd(a) else:a=a-0.08turtle.lt(3)turtle.fd(a)turtle.pu()turtle.end_fill()#绘制右眼眼影 turtle.begin_fill()turtle.fillcolor("pink")turtle.pu()turtle.goto(-278,255)turtle.pendown()turtle.color("pink")turtle.seth(15)turtle.circle(-100,35)turtle.pu()turtle.goto(-250,275)turtle.seth(180)a=1for i in range(20):if 0<=i<30 or 60<=i<90:a=a+0.08turtle.lt(3) turtle.fd(a) else:a=a-0.08turtle.lt(3)turtle.fd(a)turtle.goto(-250,275)turtle.seth(0)a=1for i in range(20):if 0<=i<30 or 60<=i<90:a=a+0.08turtle.rt(3) turtle.fd(a) else:a=a-0.08turtle.lt(3)turtle.fd(a)turtle.pu()turtle.end_fill()#绘制睫毛 turtle.pu()turtle.goto(-250,275)turtle.seth(0)turtle.pd()a=1for i in range(20):if 0<=i<30 or 60<=i<90:a=a+0.08turtle.rt(3) #向左转3度turtle.fd(a) #向前走a的步长else:a=a-0.08turtle.lt(3)turtle.fd(a)turtle.pensize(3)turtle.color(242,156,177)turtle.circle(20,190)turtle.pensize(1)#绘制母企鹅的右眼珠turtle.color("black")turtle.fillcolor("black")turtle.begin_fill()turtle.pu()turtle.goto(-270,245)turtle.seth(180)turtle.pd()turtle.begin_fill() a=0.01for i in range(120):if 0<=i<30 or 60<=i<90:a=a+0.05turtle.lt(3) turtle.fd(a) else:a=a-0.05turtle.lt(3)turtle.fd(a)turtle.pu()turtle.end_fill()def mouth():#配置画笔属性turtle.fillcolor((250,175,8)) turtle.color((250,175,8))turtle.speed(1)turtle.colormode(255)#绘制母企鹅的嘴巴 turtle.pu()turtle.goto(-410,120)turtle.seth(30)turtle.pd()turtle.begin_fill() turtle.circle(-225,60)turtle.circle(-8,150)turtle.seth(210)turtle.circle(-225,60)turtle.seth(-210)turtle.circle(-8,150)turtle.pu()turtle.end_fill()def bowknot():#配置画笔属性turtle.speed(1)turtle.fillcolor("pink")turtle.pu()turtle.color("pink")turtle.goto(-250,360)turtle.pd()turtle.seth(225)#绘制蝴蝶结的上半部分 turtle.begin_fill()turtle.fillcolor("pink")turtle.pu()turtle.goto(-250,360)turtle.pd()turtle.circle(-70,100)turtle.seth(50)turtle.circle(-80,53)turtle.pu()turtle.goto(-250,360)turtle.seth(50)turtle.pd()turtle.circle(70,100)turtle.seth(225)turtle.circle(80,53)turtle.end_fill()#绘制蝴蝶结下半部分 turtle.pu()turtle.goto(-195,335)turtle.pd()turtle.begin_fill()turtle.fillcolor("pink")turtle.seth(45)turtle.circle(-70,100)turtle.seth(230)turtle.circle(-80,62.5)turtle.pu()turtle.goto(-195,335)turtle.seth(225)turtle.pd()turtle.circle(70,100)turtle.seth(50)turtle.circle(80,58)turtle.end_fill()#蝴蝶结的中间部分 turtle.begin_fill()turtle.fillcolor("pink")turtle.pu()turtle.color("pink")turtle.goto(-255,370)turtle.pd()turtle.seth(225)turtle.circle(40,360)turtle.end_fill()def scarf():#配置画笔属性turtle.fillcolor("pink") turtle.color("pink")turtle.speed(1)turtle.colormode(255)#绘制围巾 turtle.pu()turtle.goto(-489,82)turtle.seth(-115)turtle.pd()turtle.begin_fill() turtle.fd(75)turtle.seth(-30)turtle.circle(450,10)turtle.seth(-90)turtle.fd(100)turtle.seth(-35)turtle.circle(50,70)turtle.seth(90)turtle.fd(95)turtle.seth(-12)turtle.circle(450,40)turtle.seth(110)turtle.fd(70)turtle.seth(213)turtle.circle(-345,64)turtle.pu()turtle.end_fill() def body():#配置画笔属性turtle.fillcolor("black") turtle.color("black") turtle.speed(1)turtle.colormode(255)#绘制母企鹅的身体 turtle.pu()turtle.goto(-489,82)turtle.seth(-115)turtle.pd()turtle.begin_fill() turtle.fd(175)turtle.circle(120,40)turtle.seth(30)turtle.circle(200,40)turtle.seth(-90)turtle.circle(174,180)turtle.seth(-70)turtle.circle(200,40)turtle.seth(70)turtle.circle(120,43)turtle.fd(175)turtle.seth(213)turtle.circle(-345,66)turtle.pu()turtle.end_fill()def feet():#配置画笔属性turtle.fillcolor((250,175,8)) turtle.color((250,175,8)) turtle.speed(1)turtle.colormode(255)#绘制母企鹅的左脚 turtle.pu()turtle.goto(-300,-228)turtle.seth(180)turtle.pd()turtle.begin_fill() turtle.fd(200)turtle.circle(-10,120)turtle.circle(-120,40)turtle.pu()turtle.end_fill()#绘制母企鹅的右脚 turtle.pu()turtle.goto(-300,-228)turtle.seth(0)turtle.pd()turtle.begin_fill() turtle.fd(200)turtle.circle(10,120)turtle.circle(120,50)turtle.pu()turtle.end_fill()def belly():#配置画笔属性turtle.fillcolor("white") turtle.color("white") turtle.speed(1)turtle.colormode(255)#绘制母企鹅的白色肚皮 turtle.pu()turtle.goto(-305,28)turtle.seth(180)turtle.pd()turtle.begin_fill() #画椭圆a=4.5for i in range(120):if 0<=i<30 or 60<=i<90:a=a+0.1turtle.lt(3) turtle.fd(a) else:a=a-0.1turtle.lt(3)turtle.fd(a)turtle.pu()turtle.end_fill()turtle.pu()turtle.end_fill() turtle.Turtle().screen.delay(0)head(); bowknot(); lefteye(); righteye(); mouth(); feet(); body(); belly(); scarf(); turtle.hideturtle() turtle.mainloop()
企鹅代码
小企鹅生成动画:
三、参考博文
本文中部分基本操作参照 博文 10分钟轻松学会 Python turtle 绘图
转载于:https://www.cnblogs.com/Robin5/p/10945105.html
Python中使用小海龟画图相关推荐
- 五十七、教用Python中的turtle海龟画图(下篇)
@Author:Runsen @Date:2020/5/27 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排 ...
- 五十六、教用Python中的turtle海龟画图(上篇)
@Author:Runsen @Date:2020/5/27 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排 ...
- 用python海龟画图_Python中使用小海龟画图
importturtleimporttimedefhead():#配置画笔属性 turtle.fillcolor("black") turtle.color("black ...
- python 画图_学python画图最快的方式——turtle小海龟画图
python中的画图方式主要有三种:turtle.tkinter.pygame,我们先从最简单的turtle开始. turtle翻译过来是海龟,我们一般喊它小海龟画图. turtle是一款简单易上手的 ...
- python画樱桃小丸子_学python画图最快的方式——turtle小海龟画图
原标题:学python画图最快的方式--turtle小海龟画图 python中的画图方式主要有三种:turtle.tkinter.pygame,我们先从最简单的turtle开始. 学python画图最 ...
- python turtle小海龟画图(语法基础及作业案例)
小海龟画图 小海龟:import turtle 是python种很流行的绘制图像的函数库,通过x轴y轴进行坐标移动,绘制图形. 常用语法 常用命令 说明 pen=turtle.Pen() 获取笔 pe ...
- 解决VS Code连接远程服务器使用Python中的matplotiib包画图无法显示的问题
项目场景: 在使用VS Code连接远程服务器使用Python中的matplotiib包画图时,会出现无法显示的问题 问题描述: 在直接执行画图程序时,会报错:RuntimeError: Invali ...
- ROS2教程(入门级):ROS 2 中的小海龟以及rqt的使用(1)
目标: 安装并使用 turtlesim 包以及 rqt,为接下来的教程做准备.本篇博客依然是跟着官方文档来的,有兴趣直接阅读官方文档的可以看这个. 背景 Turtlesim是一个学习ROS 2的轻量级 ...
- python神奇的小海龟_Python笔记_第一篇_面向过程_第一部分_8.画图工具(小海龟turtle)...
turtle 是一个简单的绘图工具. 提供一个小海龟,可以把它理解为一个机器人,只能听懂有限的命令,且绘图窗口的原点(0,0)在中间,默认海龟的方向是右侧 海龟的命令包括三类:运动命令.笔画控制命令. ...
最新文章
- [转自脚本之家] Javascript cookie 详解
- 呼叫中心的技术创新源于管理文化的变革
- JAVA学习:maven开发环境快速搭建How to download J2EE API (javaee.jar) from Maven
- QT隐式调用VC开发的DLL
- ArcGIS中的投影和坐标转换
- 聊一聊Jmeter的参数化
- 【NGS接龙】薛宇:漫谈生物信息圈儿的那些年、那些事!
- Win7上Git安装及配置过程 [转]
- 从C#到Objective-C,循序渐进学习苹果开发(2)--Objective-C和C#的差异
- 初识多线程之基础知识与常用方法
- Java基础学习总结(145)——Java SPI(Service Provider Interface)简介
- ELK详解(六)——Logstash部署与简单应用
- AD21 DXP封装库中的keepputlayer怎么开孔
- 中国城市经纬度表(精确到县区)Google地图用
- jquery.nicescroll用法
- 技术大众化--10款无需编程的App DIY开发工具
- 单元刚度矩阵 C++
- (一)抖音快手短视频去水印原理分析
- 六度空间理论(数据结构图,c语言版)
- CocosCreator 子弹运动轨迹的绘制
热门文章
- Guitar Pro7乐谱页面显示模式设置
- 1.4 Python 程序语法元素分析
- 2021年新款创维E900v21e,非高安版-线刷刷机固件- 移动联通版
- php百度网盘解析源码,【教程】php实现百度网盘视频解析
- Carthage 教程:开始
- proteus中仿真时钟计时器DS1307
- 开源免费简洁美观的网盘系统Z-File
- migrating-vcenter-database-express-to-sql-2008-r2
- html气泡运动代码,CSS3 仿微信聊天小气泡实例代码
- Google Maps JavaScript API V3的使用(四)