打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python海龟画图方法汇总,绘图案例实战!

turtle是python编程的一个非标准库,可以通过机器指令的方式来在一款空白的画布上完成绘图。

可以将它理解成生活中一个画笔,通过调整画笔的颜色、宽度等、其次设置画笔的轨迹从而画出一幅图。

绘画时默认的画笔起点就是屏幕的正中间位置(也就是坐标0,0),画笔的命令一般分为两种。

一种是设置画笔参数的相关指令,另一种则是画笔的运动指令,也就是画笔绘画的轨迹设定,再对轨迹运动后产生的图形进行图案的填充即可完成。

1. 全局指令设置

一般在开始绘画之前会进行对画笔全局参数指定的设置,并且可以将一些公共的后期绘画过程中不会改变的属性进行设置。

Turtle 函数使用
相关函数说明
turtle.clear()清空画布中的内容,但是此时画笔的起点还是在原来的位置不会改变
turtle.reset()清空画布中的内容,并且画笔状态为起始状态
turtle.undo()撤销上一个绘画动作
turtle.isvisible()查看当前画笔的状态是否为可见状态
stamp()复制当前画好的图形
turtle.write(s [,font=(“font-name”,font_size,“font_type”)])向画布中写入内容,并设置写入内容的大小、颜色等

2. 画笔属性控制

通过对画笔的宽度、速度、颜色等相关的参数设置实现比较漂亮的绘图效果,若是不喜欢画笔在画布上面的展示还可以将其隐藏等等。

Trutle 函数使用
相关函数说明
turtle.pensize()设置画笔的宽度
turtle.pencolor(color)设置画笔的颜色,颜色支持三种格式的颜色表示方法
turtle.speed(speed)设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快
turtle.fillcolor(colorstring)绘制图形的填充颜色,一般放在开始填充、结束填充的函数之间
turtle.color(color1, color2)第一个参数为画笔颜色设置、第二个则为填充颜色
turtle.filling()查看当前是否在填充状态
turtle.begin_fill()开始填充颜色
turtle.end_fill()束填充颜色
turtle.hideturtle()隐藏画笔
turtle.showturtle()显示画笔

3. 画笔轨迹设置

整个绘图的图形、轮廓等绘制都是通过不断的调整画笔的运动参数以及画笔的抬起或放下来完成的,就是模仿一个人的绘画过程来实现的。

Turtle 函数使用
相关函数说明
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.circle(radius,extent)根据半径radius绘制extent角度的弧形,若是绘制圆形则不需要extent参数
turtle.setx()将当前x轴移动到指定位置
turtle.sety()将当前y轴移动到指定位置
turtle.setheading(angle)设置画笔箭头的朝向
turtle.home()将当前画笔的坐标位置设置为原点
turtle.dot()绘制一个指定直径和颜色的圆点
turtle.setpos(x,y)设置画笔的位置(x,y)坐标
turtle.pos()获取当前的画笔的坐标位置
turtle.xcor()获取X坐标值
turtle.ycor()取Y坐标值

上面对于turtle的画笔的相关设置基本涵盖了日常绘画过程中需要用到的所有函数,下面通过几个比较常见的小例子来实战一下。

若是没有安装turtle小乌龟的可以pip的方式安装一下即可,将命令放在下面。

pip install turtle -i https://pypi.tuna.tsinghua.edu.cn/simple/

4. 玫瑰花绘制

在其他平台上发现的玫瑰花的绘制过程,这里优化了一下隐藏了一些参数以及设置了画笔相关的属性,如有雷同、纯属巧合。

Importing the turtle module and renaming it to tle.
import turtle as tle

# 初始化画笔的全局参数属性设置

tle.hideturtle()
tle.pensize(3)
tle.penup()
tle.left(90)
tle.forward(200)
tle.pendown()
tle.right(90)

# 绘制玫瑰花的花蕊画笔运动轨迹设置

tle.fillcolor("red")
tle.begin_fill()
tle.circle(10180)
tle.circle(25110)
tle.left(50)
tle.circle(6045)
tle.circle(20170)
tle.right(24)
tle.forward(30)
tle.left(10)
tle.circle(30110)
tle.forward(20)
tle.left(40)
tle.circle(9070)
tle.circle(30150)
tle.right(30)
tle.forward(15)
tle.circle(8090)
tle.left(15)
tle.forward(45)
tle.right(165)
tle.forward(20)
tle.left(155)
tle.circle(15080)
tle.left(50)
tle.circle(15090)
tle.end_fill()

# 绘制玫瑰花的上部分花瓣的运动轨迹参数设置

tle.left(150)
tle.circle(-9070)
tle.left(20)
tle.circle(75105)
tle.setheading(60)
tle.circle(8098)
tle.circle(-9040)

# 绘制玫瑰花的下部分花瓣的运动轨迹参数设置

tle.left(180)
tle.circle(9040)
tle.circle(-8098)
tle.setheading(-83)

# 绘制玫瑰花的上部分绿叶的运动轨迹参数设置

tle.forward(30)
tle.left(90)
tle.forward(25)
tle.left(45)
tle.fillcolor("green")
tle.begin_fill()
tle.circle(-8090)
tle.right(90)
tle.circle(-8090)
tle.end_fill()

tle.right(135)
tle.forward(60)
tle.left(180)
tle.forward(85)
tle.left(90)
tle.forward(80)

# 绘制玫瑰花的下部分绿叶的运动轨迹参数设置

tle.right(90)
tle.right(45)
tle.fillcolor("green")
tle.begin_fill()
tle.circle(8090)
tle.left(90)
tle.circle(8090)
tle.end_fill()

tle.left(135)
tle.forward(60)
tle.left(180)
tle.forward(60)
tle.right(90)
tle.circle(20060)

# 完成绘图
tle.done()

「Python 集中营」,只做知识分享 !

又是樱花盛开的季节,使用小乌龟来画一颗樱花树吧!

用python为心爱的人制作520照片墙,已成功做出效果图!

python中最简单的turtle绘图:奥运五环!

有趣的控制台玩法:一行代码绘制控制台图像!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python|心型的绘制
如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍
基于turtle的Python作画
Python标准库 之 turtle(海龟绘图)
用python画一朵玫瑰给你
最全的Python海龟绘图总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服