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. 突然发现,其实百度百科写的也挺详细的

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

智能 AI 视觉识别系统打造高效流量统计方案

智能AI视觉算法解决方案&#xff0c;涵盖客流人数统计、车流量统计、牲畜养殖场计数、物品点包计数、超员报警、火焰识别报警及驾驶行为报警等功能。可精准统计商场、车站等地客流&#xff0c;区分车型统计车流量并预警拥堵&#xff0c;准确计数牲畜及物品&#xff0c;检测工厂…

UVa514 解析:火车车厢重排序问题的模拟栈实现

来源:UVa514 铁轨 Rails。 这是一个火车车厢重排序的问题,通过模拟栈操作的算法实现。这种算法非常适用于具有栈结构特性的问题,比如括号匹配、货物堆放、编译器中语法检查。本文给出了C++的两种代码实现和Python的一种实现。 题目描述 某城市有一个火车站,铁轨铺设如图。…

ENSP OSPF和BGP引入

路由协议分为&#xff1a;内部网关协议和外部网关协议。内部网关协议用于自治系统内部的路由&#xff0c;包括&#xff1a;RIP和OSPF。外部网关协议用于自治系统之间的路由&#xff0c;包括BGP。内部网关协议和外部网关协议配合来共同完成网络的路由。 BGP:边界网关路由协议(b…

华为OD机试真题-矩形绘制

题目描述 实现一个简单的绘图模块&#xff0c;绘图模块仅支持矩形的绘制和擦除 当新绘制的矩形与之前的图形重善时&#xff0c;对图形取并集 当新擦除的矩形与之前的图形重善时&#xff0c;对图形取差集 给定一系列矩形的绘制和擦除操作&#xff0c;计算最终图形的面积。下…

Android下的系统调用 (syscall),内联汇编syscall

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 什么是系统调用 (syscall) 系统调用是操作系统提供给应用程序的一组接口&#xff0c;允许用户空间程序与内核进行交互。 在 Android&#xff08;基于 Linux …

初始JavaEE篇 —— 网络编程(2):了解套接字,从0到1实现回显服务器

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 TCP 与 UDP Socket套接字 UDP TCP 网络基础知识 在一篇文章中&#xff0c;我们了解了基础的网络知识&#xff0c;网络的出…

【月之暗面kimi-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

架构师备考-概念背诵(软件工程)

软件工程 软件开发生命周期: 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成概要设计、详细设计、编码、测试等。软件运行和维护:就是…

[FBCTF 2019]rceservice 详细题解

知识点: json字符串 PHP正则表达式元字符 PCRE回溯机制绕过正则表达式 %0a 换行符绕过正则表达式(详细讲解) 提示 Enter command as JSON 题目还有一个附件,打开是index.php文件源码 <?php putenv(PATH/home/rceservice/jail); if (isset($_REQUEST[cmd])) {$json $_…

【竞技宝】DOTA2-梦幻联赛S24:圣剑美杜莎强拆基地终结比赛

北京时间11月9日,DOTA2的梦幻联赛S24继续进行。本日迎来第二阶段的B组二、三名加赛PARI对阵spirit。本场比赛双方前两局战至1-1平,决胜局同样是难分胜负打到了六十分钟之后,关键时刻spirit主动出击,圣剑美杜莎强拆基地成功一波结束比赛,最终spirit让一追二击败PARI。以下是本场…

计算机的错误计算(一百四十九)

摘要 探讨 MATLAB 中 的计算精度问题。当 为含有小数的大数或整数附近数时&#xff0c;输出会有错误数字。 例1. 已知 计算 直接贴图吧&#xff1a; 另外&#xff0c;16位的正确值分别为 0.6374239897486897e0、-0.6613118653236519e0、0.3769911184298822e-5 与…

力扣 多数元素

用了排序跟抵消。 题目 由题可知&#xff0c;多数元素是指在数组中出现次数大于一半的元素&#xff0c;且总是存在多数元素。不难想到&#xff0c;把数组排序后&#xff0c;这个数组的中间数一定是这个要找的元素。 用了sort排序&#xff0c;时间复杂度O&#xff08;nlogn&am…

Oracle OCP认证考试考点详解082系列11

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 51. 第51题&#xff1a; 题目 51.View the Exhibit and examine the description of the tables You execute this SQL statement Whi…

前端小知识:如何理解这个新特性 ?= 运算符

在日常的JavaScript开发中&#xff0c;我们经常会处理一些异步任务&#xff0c;避免代码出错&#xff0c;这时候常见的工具就是 try-catch 块和 async-await 语法。这些工具虽好&#xff0c;但当我们代码量一多&#xff0c;整个代码结构可能会显得很臃肿&#xff0c;阅读起来也…

Redhat切换其他源

1. 效果图 2. 安装 RPM 包的命令 rpm -ivh --nodeps --force epel-release-latest-8.noarch.rpm rpm -ivh --nodeps --force yum-4.7.0-4.el8.noarch.rpm rpm -ivh --nodeps --force yum-utils-4.0.21-3.el8.noarch.rpm 3. 修改默认源 vi /etc/yum.repos.d/redhat.repo[BaseO…

如何使用OpenCV和Python进行相机校准

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

「Mac畅玩鸿蒙与硬件32」UI互动应用篇9 - 番茄钟倒计时应用

本篇将带你实现一个番茄钟倒计时应用&#xff0c;用户可以设置专注时间和休息时间的时长&#xff0c;点击“开始专注”或“开始休息”按钮启动计时&#xff0c;应用会在倒计时结束时进行提醒。番茄钟应用对于管理时间、提升工作效率非常有帮助&#xff0c;并且还会加入猫咪图片…

Qt/C++ 海康SDK开发示例Demo

*** 工业相机在机器视觉中起到关键作用&#xff0c;本文基于海康 SDK 详细解读了设备连接与控制的各个步骤。内容涵盖设备枚举、句柄创建、图像采集回调以及设备异常处理&#xff0c;帮助开发者快速理解如何通过代码控制相机&#xff0c;实时采集并处理图像数据。*** 1. 搜索并…

探索 Python 的新边疆:sh 库的革命性功能

文章目录 **探索 Python 的新边疆&#xff1a;sh 库的革命性功能**第一部分&#xff1a;背景介绍第二部分&#xff1a;sh 库是什么&#xff1f;第三部分&#xff1a;如何安装 sh 库&#xff1f;第四部分&#xff1a;简单库函数使用方法1. 执行 ls 命令2. 使用 grep 搜索文件内容…

深度学习——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总

文章目录 &#x1f33a;深度学习面试八股汇总&#x1f33a;前向传播与反向传播前向传播&#xff08;Forward Propagation&#xff09;反向传播&#xff08;Back Propagation&#xff09;总结 神经网络简介结构类型前馈神经网络&#xff08;Feedforward Neural Network, FFNN&am…