海龟画图 python太阳花_python 简单的绘图工具turtle使用详解

201706210840401.jpg

目录

1. 画布(canvas)

1.1 设置画布大小

2. 画笔

2.1 画笔的状态

2.2 画笔的属性

2.3 绘图命令

3. 命令详解

4. 绘图举例

4.1 太阳花

4.2 绘制小蟒蛇

4.3 绘制五角星

python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),turtle库是python的内部库,使用导入即可 import turtle

type(turtle)

>>> type(turtle)

>>> type(int)

>>>

先说明一下turtle绘图的基础知识:

1. 画布(canvas)

画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置

1.1 设置画布大小

turtle.screensize(canvwidth=None, canvheight=None, bg=None)

参数分别为画布的宽(单位像素), 高, 背景颜色

如:

turtle.screensize(800, 600, "green")

turtle.screensize() #返回默认大小(400, 300)

turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

参数:

width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例

(startx, starty): 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心

如:

turtle.setup(width=0.6, height=0.6)

turtle.setup(width=800, height=800, startx=100, starty=100)

2. 画笔 2.1 画笔的状态

在画布上,默认有一个坐标原点为画布中心的坐标轴, 坐标原点上有一只面朝x轴正方向小乌龟. 这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中, 就是使用位置方向描述小乌龟(画笔)的状态

2.2 画笔的属性

画笔(画笔的属性,颜色、画线的宽度)

1) turtle.pensize():设置画笔的宽度;

2) turtle.pencolor(); 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组,

>>> pencolor('brown')

>>> tup = (0.2, 0.8, 0.55)

>>> pencolor(tup)

>>> pencolor()

'#33cc8c'

3) turtle.speed(speed): 设置画笔移动速度,画笔绘制的速度范围[0,10]整数, 数字越大越快

2.3 绘图命令

操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令

(1)画笔运动命令:

命令

说明 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() 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

(2)画笔控制命令:

命令

说明 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()函数对应

(3) 全局控制命令

命令

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

3.1 turtle.circle(radius, extent=None, steps=None)

描述: 以给定半径画圆

参数:

radius(半径); 半径为正(负),表示圆心在画笔的左边(右边)画圆

extent(弧度) (optional);

steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)

举例:

circle(50) # 整圆;

circle(50,steps=3) # 三角形;

circle(120, 180) # 半圆

4. 绘图举例 4.1 太阳花

201706210840402.jpg

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)

4.2 绘制小蟒蛇

201706210840403.jpg

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)

4.3 绘制五角星

201706210840414.jpg

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK平台ubuntu安装vbox

1、安装ubuntu14.04 2、在ubuntu下添加权限,根据lsusb出来的 vid pid来添加 3、安装vbox 不是最高版本越好。 4、安装xp, 5、在xp里面安装RK驱动 6、试着用RK的工具连接进入烧录模式的板子,如果连接不上修改vbox的usb,确保是usb2.0

【Pytorch神经网络实战案例】31 TextCNN模型分析IMDB数据集评论的积极与消极

卷积神经网络不仅在图像视觉领域有很好的效果,而且在基于文本的NLP领域也有很好的效果。TextCN如模型是卷积神经网络用于文本处理方面的一个模型。 在TextCNN模型中,通过多分支卷积技术实现对文本的分类功能。 1 TextCNN 1.1 TextCNN模型结构 TexCNN…

rk3188开机失败(ump_file_open() 251)

刚开始配置rk3188板子的时候&#xff0c; 基本配置&#xff0c;RK3188 RK616 ACT8846 8G的flash, 开机的时候提示如下&#xff1a; <6>[ 18.729270] request_suspend_state: wakeup (0->0) at 18680347129 (1970-01-01 00:00:18.671397630 UTC) <4>[ 23.8…

python怎么画出好看的统计图_用最简单的 Python ,画最好看的图 [简单数据可视化]...

可以直接修改参数使用&#xff0c;非常的方便。import numpy as np import pandas as pd import holoviews as hv hv.extension(bokeh) macro_df pd.read_csv(http://assets.holoviews.org/macro.csv, \t) key_dimensions [(year, Year), (country, Country)] value_dimensio…

project ‘org.springframework.boot:spring-boot-starter-parent:2.1.4.RELEASE‘ not found

复制别人的的依赖&#xff0c;在parent里面版本号爆红&#xff0c;解决方案&#xff1a; 在左上方file里找到nvalidate Caches/Restart&#xff0c;清理一下idea缓存&#xff0c;重启idea以后不会爆红了

combobox之下拉宽度自适应

效果对比 先看下优化前后的效果&#xff0c;再看实现过程. 优化前 优化后 从上图中可看到&#xff0c;combobox优化后可以自适应不同长度的字符串&#xff0c;保证每个字符串都能够显示完整。 实现过程 当我们触发CBN_DROPDOWN事件时&#xff0c;不再使用默认的实现&#xff0c…

android studio入门

1、首先要安装好java jdk&#xff0c;然后再设置好环境变量 2、下载android studio 这个可以从百度上下载 3、导入Android studio工程&#xff0c;注意&#xff0c;是导入而不是打开。这时候Android studio会帮你自己建立一些连接。

Python工具:将文件夹下的视频按照帧数输出图片文件(含代码)

1、描述 将一个视频流按帧数截取大量的图片 2、用途 AI的数据集制作&#xff0c;得到大量的图片&#xff0c;之后将其打标签 3、案例文件截图 4、代码实现&#xff1a; import cv2 import argparse import os# 边里该文件夹下的文件名称 def read_directory(directory_nam…

python模块讲解_python模块详解

使用python时&#xff0c;常常会涉及到库的调用&#xff0c;这就需要掌握模块的基本知识。 本文分为如下几个部分概念说明 模块的简单调用 包的导入 特殊的__init__.py文件 导入模块的搜索路径 __all__ 绝对引用与相对引用 import运行本质 if __name__ __main__ 概念说明 这里…

QT常用问题

Int 装QString QString::number(changInt, 10) QString 转 QByteArray QByteArray macValueui->lineEdit->text().mid(4,8).toLatin1(); 把QByteArray转成QString QString s; s.prepend(postData); ui->textBrowser->append(s); 获取系统时间 QDateTime time QD…

用Python语言对任意图像进行m*n的均匀分块(思路非常清晰,步骤简单)

主要用途&#xff1a;处理图片数据集 1 对单个图片进行分块 import numpy as np import matplotlib.pyplot as plt import cv2def divide_method1(img,m,n):#分割成m行n列print(img.shape)h, w img.shape[0],img.shape[1]gx np.round(h).astype(np.int)gy np.round(w).asty…

17.3.12---urlparse模块的URL下载

1---urlparse模块是一个解析与泛解析Web网址URL字符串的一个工具 urlparse模块会将一个普通的url解析为6个部分&#xff0c;返回的数据类型都是元祖&#xff0c;同时&#xff0c;他还可以将已经分解后的url在组合成url地址 返回六个部分&#xff0c;分别是&#xff1a;scheme&a…

C语言变量和函数命名规范

C 语言变量和函数命名规范: 关于C语言变量和函数命名规范 据考察&#xff0c;没有一种命名规则可以让所有的程序员赞同&#xff0c;程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事&#xff0c;我们不要化太多 精力试图发明世界上最好的命据…

python爬虫用什么软件写_python爬虫怎么写

如今很多有编程能力的小伙伴已经不满足手动搜索内容了&#xff0c;都希望通过编写爬虫软件来快速获取需要的内容&#xff0c;那么如何使用python制作爬虫呢&#xff1f;下面小编给大家讲解一下思路 工具/原料 python 方法/步骤 1 首先我们需要确定要爬取的目标页面内容&#xf…

花书《深度学习》代码实现:01 线性代数:基本概念+代码实现基本运算

1 标量、向量、矩阵和张量 2 矩阵和向量相乘 3 单位矩阵和逆矩阵 3.0 单位矩阵 a np.identity(3) # 三行三列单位矩阵 3.1 矩阵的逆 A [[1.0,2.0],[3.0,4.0]] A_inv np.linalg.inv(A) print("A 的逆矩阵", A_inv) 3.1 转置 A np.array([[1.0,2.0],[1.0,0…

【Pytorch神经网络理论篇】 38 Transformers:安装说明+应用结构+AutoModel类

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

python微信自动发消息_如何利用python3实现微信定时自动发消息和图片?

python代码&#xff1a; import itchat import time itchat.auto_login(hotReloadTrue) AutoList ["",""]#需要发送消息的好友,可以不止一个 message ""#需要发送的消息 path ""#需要发送图片的位置 while True: time_now time.st…

C# 委托 / 跨线程访问UI / 线程间操作无效: 从不是创建控件“Form1”的线程访问它...

C# 委托 / 跨线程访问UI / 线程间操作无效: 从不是创建控件“Form1”的线程访问它 网上的代码都比较复杂&#xff0c;还是这个简单 见代码&#xff0c; 简易解决办法&#xff1a; 主窗体代码 using System; using System.Collections.Generic; using System.ComponentModel;…

AttributeError: module ‘torch.utils‘ has no attribute ‘data‘

一、解决问题 AttributeError: module torch.utils has no attribute data 二、解决思路 属性错误:模块的torch.utils没有属性data 三、解决方法 只需在顶行添加此代码即可&#xff01; import torch.utils.data # 新添加代码

nordic 协议栈区别

S110 指的是从设备的协议栈 S120 指的是主设备的协议栈 S130 SoftDevice是符合蓝牙4.1规范的协议堆栈&#xff0c;包含了所有蓝牙智能协议层直至包含GATT/GAP。它支持多链路中心、周边、观察器和播送器任务、GATT服务器和客户机&#xff0c;以及由事件驱动、异步和线程安全的G…