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

Python—turtle绘图库使用方法

课程来源:

MOOC网《python语言程序设计》嵩天。
https://www.icourse163.org/learn/BIT-268001?tid=1474324443#/learn/announce
第二周:python基本图形绘制

1.tutle绘图库介绍

turtle绘图库是 Python 标准库之一,用户能利用turtle绘图库编写代码来绘制各种图形。

基本原理

  • 绘图窗口:turtle提供了一个绘图窗口,就像是一张画布。用户通过编写代码控制一只虚拟的 “海龟” 在这个画布上移动,“海龟” 经过的轨迹就会形成绘制的图形。
  • 指令控制:用户通过调用turtle库中的函数来控制 “海龟” 的行为。

案例1:绘制正方形

mport turtle# 创建一个turtle对象
my_turtle = turtle.Turtle()# 绘制一个正方形
for _ in range(4):my_turtle.forward(100)my_turtle.left(90)# 保持绘图窗口显示
turtle.done()

在这里插入图片描述

案例2:绘制蟒蛇

# 导入turtle绘图库,import关键字用于引入模块import turtle  # 设置绘图窗口的大小和位置,参数依次为:窗口宽度、窗口高度、窗口左上角x坐标、窗口左上角y坐标
turtle.setup(650, 350, 200, 200)  # 抬起画笔,之后移动画笔时不会绘制线条
turtle.penup()  # 画笔前进(forward的缩写)指定的距离,负数表示向当前方向的反方向移动
turtle.fd(-250)  # 放下画笔,之后移动画笔时会绘制线条
turtle.pendown()  # 设置画笔的宽度
turtle.pensize(25)  # 设置画笔的颜色为紫色
turtle.pencolor("purple")  # 设置海龟(画笔)的朝向,参数为角度,这里设置为 -40度
turtle.seth(-40)  # 使用for循环,循环4次for i in range(4):  # 绘制半径为40,圆心角为80度的圆弧,方向为逆时针turtle.circle(40, 80)  # 绘制半径为 -40(负号表示圆心在画笔左侧),圆心角为80度的圆弧,方向为顺时针turtle.circle(-40, 80)  # 绘制半径为40,圆心角为80/2(即40度)的圆弧,方向为逆时针
turtle.circle(40, 80 / 2)  # 画笔前进40个单位长度
turtle.fd(40)  # 绘制半径为16,圆心角为180度的圆弧,方向为逆时针
turtle.circle(16, 180)  # 画笔前进40 * 2/3个单位长度
turtle.fd(40 * 2 / 3)  # 保持绘图窗口显示,防止程序结束后窗口立即关闭
turtle.done()  

在这里插入图片描述

2.使用方法

(1)turtle 绘图窗体布局

  • 概念:turtle的画布空间,最小单位是像素
    在这里插入图片描述
  • 设置方法:通过turtle.setup()函数实现。它可以指定绘图窗口的宽度、高度,以及窗口在屏幕上的起始位置。
import turtle
# 设置窗口宽度为800像素,高度为600像素,窗口左上角在屏幕(100, 100)位置
turtle.setup(800, 600, 100, 100) 

在这里插入图片描述
在这里插入图片描述

(2)turtle空间坐标体系

- 绝对坐标:以绘图窗口中心为原点 (0, 0),水平向右为 x 轴正方向,垂直向上为 y 轴正方向。使用turtle.goto(x, y)函数可将画笔移动到指定的绝对坐标位置。

import turtle
turtle.goto(100, 100)  # 画笔移动到坐标(100, 100)处

在这里插入图片描述
在这里插入图片描述
- 相对坐标:基于当前画笔位置来确定新的位置。例如,turtle.fd(distance)函数使画笔沿当前方向前进指定距离,turtle.bk(distance)则沿当前方向后退指定距离;turtle.right(angle)和turtle.left(angle)分别使画笔顺时针、逆时针旋转指定角度。

import turtle
turtle.fd(100)  # 画笔沿当前方向前进100像素
turtle.left(90)  # 画笔逆时针旋转90度

在这里插入图片描述
在这里插入图片描述

(3)turtle角度坐标体系

- 绝对角度:以水平向右方向为 0 度,逆时针方向为角度增加方向。使用turtle.seth(angle)函数可设置画笔的绝对朝向角度。

import turtle
turtle.seth(45)  # 将画笔方向设置为与水平向右方向成45度角

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
- 相对角度:通过left(angle)和right(angle)函数来改变画笔方向,它们基于当前画笔方向进行旋转。如left(30)表示画笔在当前方向基础上逆时针旋转 30 度。
在这里插入图片描述
在这里插入图片描述

(4)RGB色彩体系

  • 概念:RGB指红蓝绿三个通道的颜色组合。RGB色取值范围0-255整数或0-1小数。
  • 设置方法:
    ①直接使用颜色名称:如"red"、“green”、"blue"等常见颜色名称。
import turtle
turtle.pencolor("red")  # 设置画笔颜色为红色

②RGB 整数值表示:使用(r, g, b)元组,其中 r、g、b 分别是 0 - 255 之间的整数,表示红、绿、蓝三种颜色的强度。

import turtle
turtle.pencolor((128, 0, 128))  # 设置画笔颜色为紫色

③ RGB 小数值表示:使用(r, g, b)元组,r、g、b 取值范围是 0.0 - 1.0,同样表示红、绿、蓝三种颜色的强度。

import turtle
turtle.pencolor((0.5, 0.5, 0.5))  # 设置画笔颜色为灰色

在这里插入图片描述
在这里插入图片描述

3.语法元素分析(待补充)

http://www.xdnf.cn/news/13672.html

相关文章:

  • 【论文阅读笔记】高光反射实时渲染新突破:3D Gaussian Splatting with Deferred Reflection 技术解析
  • 技术专栏|LLaMA家族——模型架构
  • 算法学习笔记:2.大根堆算法——数据流的中位数​​or最后一块石头的重量
  • 【Redisson】锁可重入原理
  • Redis初识第一期
  • 从0到1构建高并发秒杀系统:实战 RocketMQ 异步削峰与Redis预减库存
  • 接口测试常用工具及测试方法(基础篇)
  • 【MySQL】视图
  • 电话号码的字母组合
  • 12.ack,ACK 的区别与含义
  • 【项目实践】SMBMS(Javaweb版)(五)供应商管理模块
  • 时间同步技术在电力系统中的应用二
  • 现代建筑中空气流向管理系统SKGL的智能化趋势
  • 稳定币的监管
  • Agent应用案例精选,以及主流Agent框架开源项目推荐
  • 软件测试面试题总结【含答案】
  • 3.3.2 纠错编码(海明校验码)
  • web项目实现PWA和Browsersync的安装及使用方法
  • 锂电池3V\3.3V\3.7V升5V升压芯片,选型指南
  • 欧洲AI的崛起:Mistral推出首款逻辑推理模型Magistral,挑战美中AI霸主地位
  • UE5 学习系列(七)导入bridge资产包
  • 雷卯针对易百纳EB-SS528-DC-175开发板防雷防静电方案
  • 龙虎榜——20250611
  • 内核性能调优
  • 什么是分布式锁,及其实现
  • 洛谷 P2757 [国家集训队] 等差子序列
  • Spring | 深入解析 Spring AOP 中的AopProxyUtils.ultimateTargetClass()解决代理对象注解获取问题
  • Zero-Shot突变预测VenusREM的安装和使用
  • Office 365下载安装教程(超详细图文教程)从零开始的完整安装指南
  • python中的字符串、输入与输出、列表