Python海龟绘图详解

目录
  • 一.画笔和屏幕
  • 二.实战与应用
    • 1.写字
    • 2.用于交互式写字
    • 3.自己控制方向
    • 4.拖动小海龟画图
    • 5.规定时间后开始画

hello,大家好,我是Dream。最近有小伙伴私信我,说让我出一篇海龟画图,这其实我也不太能弄得明白,那在这里我和大家一块梳理一下!记得给我点赞收藏哟~

一.画笔和屏幕

这里单独拿开一个讲的话会很抽象,因为一个是线,另一个是面,面是线的载体,线是面的内容

首先大家先运行这一段代码:

import turtle#调用turtle库
turtle.title("绘制第一只海龟")#设置窗口名称
print('开始了')
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)

我们可以看到运行结果是这个:

你会发现他只会存在一瞬间,画完就不见了

我们总会想让美好的瞬间多存在一会,这个时候我们往往会用到time这个库

让我们看一看新的代码:

import turtle
import time
turtle.title("绘制第一只海龟")
print('let's go')
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)
time.sleep(10)#这里调用了time库,sleep顾名思义,睡眠的意思,括号里是秒数,就是你想让他停留几秒的意思

现在我们的画面便可以停留10s了

当然不用time也是可以的,上代码:

import turtle

turtle.title("绘制第一只海龟")
print('开始了')
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)
turtle.exitonclick()  # 实现单击鼠标左键时关闭窗口

或者你可以换成 turtle.done() 让画面一直停留

说了折磨多,那屏幕是怎么产生的呢?

来直接看代码:

turtle.setup(width=400, height=300, startx=None, starty=None)

这里是设置屏幕的大小,就像上一段代码一样,如果你没有设置大小的话,那屏幕就是默认值。

此处:

width:设置窗口的宽度,默认为屏幕的 50%。

height:设置窗口的高度,默认为屏幕的 50%。

startx:窗口距离屏幕左边缘多少距离,负值表示距离右边缘,None 表示窗口水平居中。

starty:窗口距离屏幕上边缘多少距离,负值表示距离下边缘,None 表示窗口垂直居中。

当然如果你觉得屏幕背景白色太单调的话你也可以设置一下他的背景颜色或者插入自己的图片(但图片大小不一,想要设置的好看的话,需要自己调节屏幕大小尺寸)

话不多说,直接上代码:

import turtle

turtle.title("绘制第一只海龟")
turtle.bgcolor("green")#这里是设计背景颜色
turtle.bgpic(picname='./imgs/xu.gif')#这里是插入图片,图片必须放在同一路径文件下
#图片格式必须为gif!!!,不然无法识别
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)
turtle.done()  # 海龟绘图程序的结束语句(开始主循环)turtle.done()  # 海龟绘图程序的结束语句(开始主循环)

这是我自己的背景:

还行啊吧,我的眼光还是不错的哟~

关于屏幕知识也就这些了,接下来说一下画笔:

拿我们刚才写的代码来说:

import turtle

turtle.title("绘制第一只海龟")
turtle.bgcolor("green")#这里是设计背景颜色
turtle.bgpic(picname='./imgs/xu.gif')
turtle.forward(100)
turtle.left(30) #左转弯和右转弯一个意思不用写
turtle.forward(100)
turtle.done()

forward表示向前走,left向左拐多少度,back向后,right向右拐多少度,这是最基本的,看点稍微高级一点的:

import turtle
import time
turtle.goto(100, 100)
turtle.goto(-100, 100)
turtle.goto(100, -100)
turtle.goto(-100, -100)
turtle.goto(0, 0)

turtle.penup()#这里指从0开始抬笔,继续路线,只是不画了
turtle.forward(100)
turtle.right(90)
turtle.pendown()#落笔继续画
turtle.color("red")#画笔颜色
turtle.goto(100, -100)
time.sleep(5)

这里:初始位置都是0,就是屏幕中央

放下笔:pendown()

抬起笔:penup()

到指定坐标:goto(x, y)

颜色:color(“cc”)

画笔的颜色主要有:

黄色:yellow

红色:red

蓝色:blue

绿色:green

粉色:pink

紫色:purple

灰色:grey

橘色:orange

那如果你觉得画笔太细咋办,来上代码:

turtle.width(5)

这个帮你调粗细,初始值为1

如果你觉得速度不对呢,来上代码:

turtle.speed(0)  # 设置画笔的速度,0为最快

其中0最快,直接出结果,1最慢,然后从2~10依次加快

那这些就是你要掌握的基础知识了~

二.实战与应用

1.写字

如何在上面写字呢:来来来上代码:

turtle.write( arg, move=False, align="left", font=("Arial", 8, "normal"))

arg:必选参数,用于指定要输出的文字内容,该内容会输出到当前海龟光标的所在位置。

move:可选参数,用于指定是否移动画笔到文本的右下角**,默认为False (不移动)。**

align:可选参数,用于指定文字的对齐方式,其参数值为left(居左)、center(居中)或者right(居右)中的任意一个,默认为 left。

font:可选参数,用于指定字体、字号和字形,通过一个三元组(字体,字号,字形)指定。

说明:字形可设置的值为normal(表示正常)、bold(粗体)、italic(斜体)、underline(下划线)等。

上代码:

import turtle  # 导入海龟绘图模块

turtle.color("green")  # 填充颜色
turtle.up()  # 抬笔
turtle.goto(-300,0)
turtle.down()  # 落笔
turtle.write("徐以鹏比易烊千玺帅亿点。", font=("宋体", 18, "normal"))
turtle.done()  # 海龟绘图程序的结束语句(开始主循环)

那就是这个效果了~

2.用于交互式写字

import turtle  # 导入海龟绘图模块
turtle.color("green")  # 填充颜色
word = turtle.textinput("温馨提示:", "请输入要打印的文字")  # 弹出输入对话框
turtle.write(word, True, font=("宋体", 18, "italic"))  # 输出文字
turtle.done()  # 海龟绘图程序的结束语句(开始主循环)

3.自己控制方向

import turtle

def move():
    turtle.left(90)
    turtle.forward(100)

turtle.listen()#监听鼠标
turtle.onkey(move, "w")#按w进行走动
turtle.done()
import turtle

def move():
    turtle.forward(2)

turtle.listen()
turtle.onkeypress(move, "w")#一直按w才走
turtle.done()

4.拖动小海龟画图

ondrag():表示处理鼠标拖动事件

默认值为1(鼠标左键)、2(鼠标中键,即按下滑轮)、3(鼠标右键)

import turtle

t = turtle.Turtle()
t.shape("turtle")
t.color("green")
turtle.listen()

def fun(x, y):
    t.pendown()
    t.goto(x, y)

t.ondrag(fun, 1)
turtle.done()

5.规定时间后开始画

ontimer() 方法来实现一个计时器,用于达到指定时间时,执行一个操作 

import turtle

def fun():  # 绘制正方形
    for i in range(4):
        turtle.forward(100)
        turtle.left(90)

turtle.getscreen().ontimer(fun, 3000)  # 设置计时器
turtle.done()  # 海龟绘图程序的结束语句(开始主循环) 

到此这篇关于Python海龟绘图详解的文章就介绍到这了,更多相关Python海龟绘图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python海龟绘图之画国旗实例代码

    画之前肯定要知道规格图,我找了一个大致的图. 参考图片: 绘制大星的方法很简单,五角星的补角是144度. 绘制小五角星有点麻烦,因为我国国旗上的小五角星并不是平放的(美帝曾经这样把我们的国旗搞错过),而是总有一个角正对着大五角星的中心!我的方法是,定位到小五角星的中心点,然后根据角度后退一定的长度.这个角度可以根据反勾股定理算出来(这有计算工具),长度我是按照大五角星的中心点到角尖的距离除以3得到的. 代码: from turtle import * screensize(2000,2000,'

  • Python使用海龟绘图实现贪吃蛇游戏

    在实现贪吃蛇游戏时,首先需要使用python内置的turtle模块来实现创建游戏窗体与键盘按键的监听工作,然后使用freegames模块进行贪吃蛇的绘制工作. 1.turtle模块 turtle模块是python的内置模块,所以在使用前需要使用import导入该模块.代码如下: import turtle (1) 创建游戏窗体可以使用turtle模块中的setup()方法来实现.语法格式如下: turtle.setup(width=_CFG["width"],height=_CFG[&

  • python海龟绘图实例教程

    本文以实例形式介绍了python turtle模块即海龟绘图的使用方法,对于需要进行图形编程的朋友相信会有一定的借鉴价值. python turtle模块简介:  python2.6版本中引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics) 1.使用海龟绘图首先我们需要导入turtle,如下所示: from turtle import * #将turtle中的所有方法导入 2.海龟绘图属性: (1)位置  (2)方向  (3)画笔(画笔的属性,颜色.画线的宽度) 3.操纵海龟

  • python用海龟绘图写贪吃蛇游戏

    一个简单的贪吃蛇程序,供大家参考,具体内容如下 如图显示 导入海龟绘图库 from turtle import * from random import randrange 常量设置 food_x = randrange(-20, 20) * 20 food_y = randrange(-20, 20) * 20 snack = [[0, 0], [20, 0], [40, 0], [40, 20]] dir_x = 20 dir_y = 0 主函数 if __name__ == '__main

  • Python海龟绘图详解

    目录 一.画笔和屏幕 二.实战与应用 1.写字 2.用于交互式写字 3.自己控制方向 4.拖动小海龟画图 5.规定时间后开始画 hello,大家好,我是Dream.最近有小伙伴私信我,说让我出一篇海龟画图,这其实我也不太能弄得明白,那在这里我和大家一块梳理一下!记得给我点赞收藏哟~ 一.画笔和屏幕 这里单独拿开一个讲的话会很抽象,因为一个是线,另一个是面,面是线的载体,线是面的内容 首先大家先运行这一段代码: import turtle#调用turtle库 turtle.title("绘制第一只

  • Python matplotlib绘图详解

    目录 图标英文显示设置: 一.figure窗口及坐标轴设置 二.为特殊点加注解(Annotation) 总结 图标英文显示设置: 正常以字符串形式传进去字串,英文显示格式不是很美观,为了让文字更美观点,在书写时以这种格式写: r'$string$' 在这里,如果需要特殊数学字符使用 \ 转义,空格也需要转义 比如:r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$' 一.figure窗口及坐标轴设置 plt.figure(figsize

  • Python内置模块turtle绘图详解

    urtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形. turtle绘图的基础知识: 1.画布(canvas) 画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置. 设置画布大小 turtle.screensize(canvwidth=None,canvheight=None,bg=None),参数分别为画布的

  • Python Matplotlib 实现3D绘图详解

    目录 第一个三维绘图程序 3D散点图 3D等高线图 3D线框图 3D曲面图 最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的基础上,构建了一部分较为实用的 3D 绘图程序包,比如 mpl_toolkits.mplot3d,通过调用该程序包一些接口可以绘制 3D散点图.3D曲面图.3D线框图等 mpl_toolkits 是 Matplotlib 的绘图工具包. 第一个三维绘图程序 下面编写第一个三维绘图程序. 首先创建一个三维绘

  •  python用matplotlib可视化绘图详解

    目录 1.Matplotlib 简介 2.Matplotlib图形绘制 1)折线图 2)柱状图 3)条形图 3)饼图 4)散点图 5)直方图 6)箱型图 7)子图 1.Matplotlib 简介 Matplotlib 简介: Matplotlib 是一个python的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,matplotlib 对于图像美化方面比较完善,可以自定义线条的颜色和样式,可以在一张绘图纸上绘制多张小图,也可以在一张图上绘制多条线,可以很方便地将数据可

  • Python数据分析之matplotlib绘图详解

    目录 多子图 散点图 水平柱状图 同位置柱状图 多子图 figure是绘制对象(可以理解为一个空白的画布),一个figure对象可以包含多个Axes子图,一个Axes是一个绘图区域,不加设置时,Axes为1,且每次绘图其实都是在figure上的Axes上绘图. 我们是在图形对象上面的Axes区域进行作画 1.add_axes():添加区域 2.Matplotlib定义一个axes类,该类的对象称为axes对象(即轴域对象),它指定一个有数值范围限制的绘图区域.再给定一个画布中,可以包含多个axe

  • Python数据可视化详解

    目录 一.Matplotlib模块 1.绘制基本图表 1. 绘制柱形图 2. 绘制条形图 3. 绘制折线图 4. 绘制面积图 5. 绘制散点图 6. 绘制饼图和圆环图 2.图表的绘制和美化技巧 1. 在一张画布中绘制多个图表 2. 添加图表元素 3. 添加并设置网格线 4. 调整坐标轴的刻度范围 3.绘制高级图表 1. 绘制气泡图 2. 绘制组合图 3. 绘制直方图 4. 绘制雷达图 5. 绘制树状图 6. 绘制箱形图 7. 绘制玫瑰图 二.pyecharts模块 1.图表配置项 2.绘制漏斗图

  • Python网络编程详解

    1.服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的"服务".它存在唯一目的就是等待客户端的请求,并响应它们(提供服务),然后等待更多请求. 2.客户端/服务器架构既可以应用于计算机硬件,也可以应用于计算机软件. 3.在服务器响应客户端之前,首先会创建一个通信节点,它能够使服务器监听请求. 一.套接字:通信端点 1.套接字 套接字是计算机网络数据结构,它体现了上节中所描述的"通信端点"的概念.在任何类型的通信开始之前,网络应用程序必须创建套接字

  • Python 多线程实例详解

    Python 多线程实例详解 多线程通常是新开一个后台线程去处理比较耗时的操作,Python做后台线程处理也是很简单的,今天从官方文档中找到了一个Demo. 实例代码: import threading, zipfile class AsyncZip(threading.Thread): def __init__(self, infile, outfile): threading.Thread.__init__(self) self.infile = infile self.outfile =

  • Docker 打包python的命令详解

    最近用Python写了一段爬虫程序,为了隔离其运行环境,易于分发,把项目打包成Docker镜像 Dockerfile FROM python:2.7.12-alpine ADD ./src /job CMD ["python", "/job/main.py"] 构建命令 $ docker build -t job . 运行 $ docker run -d --name job job 比较简单 以上所述是小编给大家介绍的Docker 打包python的命令详解,希望

随机推荐