python turtle绘图


Posted in Python onMay 04, 2022

一、安装

  • 写出许多有趣的可视化东西
  • 也可以画出很多奇妙的图案
pip install turtule

二、画布

  • 画布就是turtle为我们展开用于绘图区域
  • 我们可以设置它的大小和初始位置
import turtle
# 返回默认大小(400, 300)
turtle.screensize()
# 设置画布方法一,设置宽、高、背景色
turtle.screensize(800, 600, "green")
# 设置画布方法二, 宽高为小数时候为占据电脑屏幕比例, 宽高为整数时候为像素
turtle.setup(width=0.6, height=0.6)
# startx,starty表示矩形窗口左上角顶点的位置, 如果为空, 则窗口位于屏幕中心
turtle.setup(width=800, height=800, startx=100, starty=100)

三、画笔

  • 可以设置画笔的属性,颜色、画线的宽度等
import turtle
# 设置画笔的宽度
turtle.pensize()
# 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色
turtle.pencolor()
# 设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快
turtle.speed(speed)

四、绘图命令

import turtle
# 向当前画笔方向移动distance像素长
turtle.forward(distance)
# 向当前画笔相反方向移动distance像素长度
turtle.backward(distance)
# 顺时针移动degree°
turtle.right(degree)
# 逆时针移动degree°
turtle.left(degree)
# 移动时绘制图形,缺省时也为绘制
turtle.pendown()
# 将画笔移动到坐标为x,y的位置
turtle.goto(x,y)
# 移动时不绘制图形,提起笔,用于另起一个地方绘制时用
turtle.penup()
# 画笔绘制的速度范围[0,10]整数
turtle.speed(speed)
# 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
turtle.circle()

五、画笔控制命令

import turtle
# 绘制图形时的宽度
turtle.pensize(width)
# 画笔颜色
turtle.pencolor()
# 绘制图形的填充颜色
turtle.fillcolor(colorstring)
# 同时设置pencolor=color1, fillcolor=color2
turtle.color(color1, color2)
# 返回当前是否在填充状态
turtle.filling()
# 准备开始填充图形
turtle.begin_fill()
# 填充完成
turtle.end_fill()
# 隐藏箭头显示
turtle.hideturtle()
# 与hideturtle()函数对应
turtle.showturtle()

六、全局控制命令

import turtle
# 清空turtle窗口,但是turtle的位置和状态不会改变
turtle.clear()
# 清空窗口,重置turtle状态为起始状态
turtle.reset()
# 撤销上一个turtle动作
turtle.undo()
# 返回当前turtle是否可见
turtle.isvisible()
# 复制当前图形
stamp()
# 写文本,s为文本内容,font是字体的参数,里面分别为字体名称,大小和类型
turtle.write(s[,font=("font-name",font_size,"font_type")])

七、绘制方形螺旋

from turtle import *
for i in range(500):
forward(i)
left(91)

python turtle绘图

八、绘制彩色螺旋

from turtle import *
colors = ['red', 'purple', 'blue', 'green', 'yellow', 'orange']
for x in range(360):
pencolor(colors[x % 6])
width(x / 100 + 1)
forward(x)
left(59)

python turtle绘图

九、绘制太阳花

import turtle as t
import time
t.color("red", "yellow")
t.speed(10)
t.begin_fill()
for _ in range(50):
t.forward(200)
t.left(170)
end_fill()
time.sleep(1)

python turtle绘图

十、绘制小蟒蛇

import turtle
def drawSnake(rad, angle, len, neckrad):
for _ in range(len):
turtle.circle(rad, angle)
turtle.circle(-rad, angle)
turtle.circle(rad, angle/2)
turtle.forward(rad/2) # 直线前进
turtle.circle(neckrad, 180)
turtle.forward(rad/4)
if __name__ == "__main__":
turtle.setup(1500, 1400, 0, 0)
turtle.pensize(30) # 画笔尺寸
turtle.pencolor("green")
turtle.seth(-40) # 前进的方向
drawSnake(70, 80, 2, 15)

python turtle绘图

十一、绘制五角星

import turtle
import time
turtle.pensize(5)
turtle.pencolor("yellow")
turtle.fillcolor("red")
turtle.begin_fill()
for _ in range(5):
turtle.forward(200)
turtle.right(144)
turtle.end_fill()
time.sleep(2)

turtle.penup()
turtle.goto(-150,-120)
turtle.color("violet")
turtle.write("Done", font=('Arial', 40, 'normal'))
time.sleep(1)

python turtle绘图

十二、绘制小猪佩奇

from turtle import*
# 绘制鼻子
def nose(x,y):
pu()
goto(x,y)
pd()
seth(-30)
begin_fill()
a=0.4
for i in range(120):
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()
pu()
seth(90)
fd(25)
seth(0)
fd(10)
pd()
pencolor(255,155,192)
seth(10)
begin_fill()
circle(5)
color(160,82,45)
end_fill()
pu()
seth(0)
fd(20)
pd()
pencolor(255,155,192)
seth(10)
begin_fill()
circle(5)
color(160,82,45)
end_fill()
# 绘制头部
def head(x,y):
color((255,155,192),"pink")
pu()
goto(x,y)
seth(0)
pd()
begin_fill()
seth(180)
circle(300,-30)
circle(100,-60)
circle(80,-100)
circle(150,-20)
circle(60,-95)
seth(161)
circle(-300,15)
pu()
goto(-100,100)
pd()
seth(-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 ears(x,y):
color((255,155,192),"pink")
pu()
goto(x,y)
pd()
begin_fill()
seth(100)
circle(-50,50)
circle(-10,120)
circle(-50,54)
end_fill()
pu()
seth(90)
fd(-12)
seth(0)
fd(30)
pd()
begin_fill()
seth(100)
circle(-50,50)
circle(-10,120)
circle(-50,56)
end_fill()
# 绘制眼睛
def eyes(x,y):
color((255,155,192),"white")
pu()
seth(90)
fd(-20)
seth(0)
fd(-95)
pd()
begin_fill()
circle(15)
end_fill()
color("black")
pu()
seth(90)
fd(12)
seth(0)
fd(-3)
pd()
begin_fill()
circle(3)
end_fill()
color((255,155,192),"white")
pu()
seth(90)
fd(-25)
seth(0)
fd(40)
pd()
begin_fill()
circle(15)
end_fill()
color("black")
pu()
seth(90)
fd(12)
seth(0)
fd(-3)
pd()
begin_fill()
circle(3)
end_fill()
# 绘制腮
def cheek(x,y):
color((255,155,192))
pu()
goto(x,y)
pd()
seth(0)
begin_fill()
circle(30)
end_fill()
# 绘制嘴巴
def mouth(x,y):
color(239,69,19)
pu()
goto(x,y)
pd()
seth(-80)
circle(30,40)
circle(40,80)

# 绘制身体
def body(x,y):
color("red",(255,99,71))
pu()
goto(x,y)
pd()
begin_fill()
seth(-130)
circle(100,10)
circle(300,30)
seth(0)
fd(230)
seth(90)
circle(300,30)
circle(100,3)
color((255,155,192),(255,100,100))
seth(-135)
circle(-80,63)
circle(-150,24)
end_fill()
# 绘制手
def hands(x,y):
color((255,155,192))
pu()
goto(x,y)
pd()
seth(-160)
circle(300,15)
pu()
seth(90)
fd(15)
seth(0)
fd(0)
pd()
seth(-10)
circle(-20,90)
pu()
seth(90)
fd(30)
seth(0)
fd(237)
pd()
seth(-20)
circle(-300,15)
pu()
seth(90)
fd(20)
seth(0)
fd(0)
pd()
seth(-170)
circle(20,90)
# 绘制脚
def foot(x,y):
pensize(10)
color((240,128,128))
pu()
goto(x,y)
pd()
seth(-90)
fd(40)
seth(-180)
color("black")
pensize(15)
fd(20)
pensize(10)
color((240,128,128))
pu()
seth(90)
fd(40)
seth(0)
fd(90)
pd()
seth(-90)
fd(40)
seth(-180)
color("black")
pensize(15)
fd(20)

# 绘制尾巴
def tail(x,y):
pensize(4)
color((255,155,192))
pu()
goto(x,y)
pd()
seth(0)
circle(70,20)
circle(10,330)
circle(70,30)
# 参数设置
def setting():
pensize(4)
hideturtle()
colormode(255)
color((255,155,192),"pink")
setup(840,500)
speed(10)
if __name__ == "__main__":
setting() #画布、画笔设置
nose(-100,100) #鼻子
head(-69,167) #头
ears(0,160) #耳朵
eyes(0,140) #眼睛
cheek(80,10) #腮
mouth(-20,30) #嘴
body(-32,-8) #身体
hands(-56,-45) #手
foot(2,-177) #脚
tail(148,-155) #尾巴
done() #结束

Tags in this post...

Python 相关文章推荐
对python 读取线的shp文件实例详解
Dec 22 Python
详解Python静态网页爬取获取高清壁纸
Apr 23 Python
python挖矿算力测试程序详解
Jul 03 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
pycharm 设置项目的根目录教程
Feb 12 Python
Python3的socket使用方法详解
Feb 18 Python
python实现自动打卡的示例代码
Oct 10 Python
python爬虫筛选工作实例讲解
Nov 23 Python
如何使用Python进行PDF图片识别OCR
Jan 22 Python
python实现经典排序算法的示例代码
Feb 07 Python
pycharm debug 断点调试心得分享
Apr 16 Python
python blinker 信号库
May 04 #Python
python三子棋游戏
May 04 #Python
python神经网络 使用Keras构建RNN训练
May 04 #Python
python神经网络学习 使用Keras进行回归运算
May 04 #Python
python神经网络学习 使用Keras进行简单分类
May 04 #Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
May 04 #Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 #Python
You might like
Views rows style模板重写代码
2011/05/16 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
2016/12/08 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
Python3.8中使用f-strings调试
2019/05/22 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
世界最大的票务市场:viagogo
2017/02/16 全球购物
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
演讲稿开场白
2014/01/13 职场文书
先进集体获奖感言
2014/02/13 职场文书
优秀教师单行材料
2014/12/16 职场文书
教师个人发展总结
2015/02/11 职场文书
三下乡个人总结
2015/03/04 职场文书
个人培训总结
2015/03/05 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
单位证明范文
2015/06/18 职场文书