当前位置: 首页 > news >正文

python使用turtle画图快速入门,轻松完成作业练习

turtle介绍

turtle是一个绘图库,可以通过编程进行绘图。其模拟了一个乌龟在屏幕上的运动过程。该库通常用于给青少年学习编程,当然,也可以使用其进行作图。

在一些学校中,可能在python学习的课程中,要求完成turtle绘图的作业,例如,要求画出代表自己学校的图片。

turtle操作

基本操作

import turtle# 创建一个画步
screen = turtle.Screen()# 设置画布的大小
screen.setup(width=600, height=400)# 设置标题
screen.title("小乌龟绘图")# 创建一个乌龟
t = turtle.Turtle()# 向前走100
t.forward(100)# 左转90度
t.left(90)# 重复走几次,此时我们画出了一个正方形
for i in range(3):t.forward(100)t.left(90)

结果如图所示:

转向与移动

  • 前进:t.forward(distance)或者t.fd(distance)
  • 后退:t.backward(distance)或者t.bk(distance)
  • 右转:t.right(angle)或者t.rt(angle)
  • 左转:t.left(angle)或者t.lt(angle)
  • 抬起画笔:t.penup()或者t.pu()
  • 放下画笔:t.pendown()或者t.pd()
  • 到指定位置:t.goto(x, y)
  • 获取当前位置:t.position()
  • 获取朝向的角度:t.heading()

 绘制图案

  • 绘制圆形:t.circle(radius)
  • 绘制点:t.dot(size, color)
  • 隐藏海龟:t.hideturtle()
  • 显示海龟:t.showturtle()
  • 改变海龟形状:t.shape("turtle")
  • 写字:t.write("Hello, Turtle!", font=("Arial", 16, "normal"))
  • 清除绘制内容,但海龟位置不变:t.clear()
  • 清除绘制内容,且重置海龟位置:t.reset()
  • 完成绘制:turtle.done()

可选海龟形状:

  • 箭头:arrow
  • 海龟:turtle
  • 圆圈:circle
  • 方块:square
  • 三角:triangle
  • 经典:classic

画笔属性

  • 设置画笔颜色:t.color(color)
  • 设置画笔粗细:t.pensize(width)
  • 设置画笔移动速度(0-10,10最快):t.speed(speed)

经典turtle图案

彩色五角星

import turtle
import randomscreen = turtle.Screen()
screen.setup(width=500, height=500)t = turtle.Turtle()
screen.colormode(255)  # 将颜色模式设置为RGB颜色for i in range(50):r = random.randint(0, 255)g = random.randint(0, 255)b = random.randint(0, 255)t.color(r, g, b)t.forward(5 * i)t.right(144)

彩色五角星:

奥运五环

奥运五环的颜色,分别是蓝色,黑色,红色,黄色和绿色,代表了欧洲,亚洲,非洲,大洋洲和美洲,其设计者为顾拜旦。

import turtlescreen = turtle.Screen()
screen.setup(width=500, height=500)colors = ["blue", "black", "red", "yellow", "green"]
positions = [(-120, 0), (0, 0), (120, 0), (-60, -50), (60, -50)]t = turtle.Turtle()
t.pensize(6)for color, position in zip(colors, positions):t.penup()t.goto(position)t.pendown()t.color(color)t.circle(50)

奥运五环:

樱花树

樱花树的树枝的颜色是棕色的,粗细2-4,花朵的颜色是粉色的,粗细1-2,当branch_length小于等于5时,停止绘制。

import turtle
import randomscreen = turtle.Screen()
screen.setup(width=1000, height=800)t = turtle.Turtle()t.penup()
t.goto(0, -200)
t.pendown()
t.left(90)def draw_branch(branch_length, t):if branch_length > 5:if branch_length < 20:t.color("pink")t.pensize(random.uniform(1, 2))else:t.color("brown")t.pensize(random.uniform(2, 4))t.forward(branch_length)angle = random.uniform(15, 45)t.right(angle)draw_branch(branch_length - random.uniform(5, 15), t)t.left(2 * angle)draw_branch(branch_length - random.uniform(5, 15), t)t.right(angle)t.backward(branch_length)draw_branch(100, t)

樱花树:

 turtle图片保存

import turtle
from PIL import Image# 假设做了一些绘图操作,现在我们要保存了# 如果你不想要看到箭头(也就是乌龟)影响保存图片效果
# 可以通过hideturtle隐藏乌龟
t.hideturtle()canvas = screen.getcanvas()
canvas.postscript(file="turtle_picture.ps")image = Image.open("turtle_picture.ps")
image.save("turtle_picture.png")

如果系统中没有ghostscript,那么无法将.ps的文件,转为.png的文件,会报错unable to locate ghostscript on paths

此时,需要下载ghostscript

 

下载以后,需要将下载到的ghostscript添加到环境变量中,例如,默认的地址可能是:C:\Program Files\gs\gs10.04.0\bin,当然,需要按照你实际安装的地址填写。

 P.S. 突然发现,其实百度百科写的也挺详细的

相关文章:

python使用turtle画图快速入门,轻松完成作业练习

turtle介绍 turtle是一个绘图库&#xff0c;可以通过编程进行绘图。其模拟了一个乌龟在屏幕上的运动过程。该库通常用于给青少年学习编程&#xff0c;当然&#xff0c;也可以使用其进行作图。 在一些学校中&#xff0c;可能在python学习的课程中&#xff0c;要求完成turtle绘…...

【C++】新手入门指南

> &#x1f343; 本系列为初阶C的内容&#xff0c;如果感兴趣&#xff0c;欢迎订阅&#x1f6a9; > &#x1f38a;个人主页:[小编的个人主页])小编的个人主页 > &#x1f380; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 > ✌️ &#x1f91e; &#x1…...

C++使用开源ConcurrentQueue库处理自定义业务数据类

ConcurrentQueue开源库介绍 ConcurrentQueue是一个高性能的、线程安全的并发队列库。它旨在提供高效、无锁的数据结构&#xff0c;适用于多线程环境中的数据交换。concurrentqueue 支持多个生产者和多个消费者&#xff0c;并且提供了多种配置选项来优化性能和内存使用。 Conc…...

在vue3的vite网络请求报错 [vite] http proxy error:

在开发的过程中 代理proxy报错: [vite] http proxy error: /ranking/hostRank?dateType1 Error: connect ETIMEDOUT 43.xxx.xxx.xxx:443 网络请求是http的: // vite.config.ts import { Agent } from node:http;server: {host: 0.0.0.0,port: port,open: true,https: false,…...

ElasticSearch 简单的查询。查询存在该字段的资源,更新,统计

1.查询存在该字段的数据 {"query": {"bool": {"must": [{"exists": { "field": "chainCode"}}],"must_not": {"exists": {"field": "isDelete"}}}} } 备注&#xff1a…...

FOFA使用教程之从零到精通

FOFA使用教程之从零到精通 前言一、关于网络资产测绘的概念1、啥是网络空间资产测绘2、啥是互联网资产二、FOFA的简要介绍1、FOFA地址是啥?2、关于FOFA的简要介绍三、FOFA精讲1、运算符规则详解① 关于 = 号的使用说明② 关于 == 号的使用说明③ 关于 && 号的使用说明…...

【提高篇】3.2 GPIO(二,基本结构)

目录 一,GPIO的基本结构 二,保护二极管 三,上拉、下拉电阻 四,施密特触发器 五,P-MOS 管和 N-MOS 管 P-MOS管和N-MOS管的区别 六,片上外设 七,IDR,ODR,BSRR寄存器 7.1 IDR(Input Data Register) 7.2 ODR(Output Data Register) 7.3 BSRR(Bit Set/Rese…...

UE hard/soft reference| DDX DDY | Unity pcg color

目录 1.虚幻引擎性能优化 &#xff08;附0跳转Unity对应机制&#xff09; hard reference and soft reference 1. 硬引用&#xff08;Hard Reference&#xff09; 2. 软引用&#xff08;Soft Reference&#xff09; 3. 使用原则 2.空间梯度转法线 DDX DDY节点 ​编辑 …...

macOS 应用公证指南:使用 fastlane 实现自动化公证流程

背景介绍 在 macOS 系统上,为了保护用户安全,Apple 要求开发者对未通过 Mac App Store 分发的应用程序进行公证(Notarization)。如果应用程序没有经过公证,用户在运行时会看到警告弹窗,这会影响用户体验。虽然开启沙箱模式的应用可以直接通过 App Store 分发来避免这个问题…...

深度学习:解密图像、音频和视频数据的“理解”之道20241105

&#x1f50d; 深度学习&#xff1a;解密图像、音频和视频数据的“理解”之道 深度学习已然成为人工智能领域的中流砥柱&#xff0c;它如何处理不同类型的数据&#xff08;如图像、音频、视频&#xff09;&#xff1f;如何将这些数据转换成计算机能理解和学习的“语言”&#…...

uniapp 实现瀑布流

效果演示 组件下载 瀑布流布局-waterfall - DCloud 插件市场...

计算机毕业设计 | springboot+vue智慧工地管理系统 前后端分离后台管理(附源码+文档)

1&#xff0c;项目介绍 管理信息是重要的资源、管理信息是决策的基础。同时管理信息是实施管理控制的依据以及是联系组织内外的纽带。对于企业&#xff0c;最重要的5大资源包括人、物资、能源、资金、信息。人、物资、能源、资金是可以看见的有形资源&#xff0c;信息则是一种…...

vue中html如何转成pdf下载,pdf转base64,忽略某个元素渲染在pdf中,方法封装

一、下载 html2Canvas jspdf npm install jspdf html2canvas二、封装转换下载方法 htmlToPdf.js import html2Canvas from html2canvas import JsPDF from jspdf/*** param {*} reportName 下载时候的标题* param {*} isDownload 是否下载默认为下载&#xff0c;传false不…...

Ubuntu下如何管理多个ssh密钥

Ubuntu下如何管理多个ssh密钥 前言 ‍ 我一直在逃避这个问题&#xff0c;误以为我能够单纯地用一个 ssh 走天下。 好吧&#xff0c;现实是我不得不管理多个 ssh 做&#xff0c;那就写个博客总结一下吧。 查阅后发现前人已经总结了不少&#xff0c;那我就结合之后&#xff…...

[vulnhub] DarkHole: 1

https://www.vulnhub.com/entry/darkhole-1,724/ 端口扫描主机发现 探测存活主机&#xff0c;184是靶机 nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-08 09:59 CST Nmap scan report for 192.168.75.1 Host is up (0.00027s latency). MA…...

商淘云连锁企业管理五大功能 收银系统助力门店进销存同步

连锁企业管理的五大功能相互协作&#xff0c;共同确保连锁门店能够高效运营、降低成本、提升客户满意度&#xff0c;并最终实现盈利目标。今天&#xff0c;商淘云分享连锁企业管理的五大功能&#xff1a; 1、进销存管理&#xff1a;进销存管理是连锁企业的基础功能之一&#xf…...

统信UOS开发环境支持Perl

UOS凭借广泛的编程语言支持,为开发者构建了一个高效灵活的开发环境,无需担心环境兼容性问题。 文章目录 一、环境部署1. Perl开发环境安装2. Perl开发环境配置环境变量配置模块管理器编辑器集成调试工具二、代码示例文件处理Web开发三、常见问题1. 依赖管理问题2. 性能问题3.…...

Stable Diffusion Web UI - ControlNet 姿势控制 openpose

openpose 是 ControlNet 中常用的控制模式之一。 通过 openpose 可以锁定人物姿势&#xff0c;把姿势信息传递给 Stable Diffusion 扩散模型&#xff0c;让其在扩散生成图片的时候遵照特定的任务姿势。 通过 openpose 能够得到类似如下效果&#xff1a; 同样的姿势&#xff0…...

java中Json字符串转换

文章目录 map与json互转map转jsonmap形式的json转map list与json互转list转jsonlist形式的json转list map形式的json串中含有列表转列表 map与json互转 map转json JSONObject.toJSONString(map); public static void main(String[] args) {Map<String, Object> map n…...

springboot处理跨域请求

在Spring Boot中处理跨域请求&#xff08;CORS, Cross-Origin Resource Sharing&#xff09;通常有几种方法。跨域请求是指从一个域名的网页去请求另一个域名下的资源。为了安全起见&#xff0c;浏览器会阻止这种请求&#xff0c;除非服务器明确允许。 方法一&#xff1a;使用…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...