学编程:Python入门考级必备[5]

news2025/2/24 20:23:39

海龟画图(5)  妙手丹青

一、初始化

二、坐标与角度

三、画圆与点与技巧

四、填充颜色与圆内内切多边形

炼 海龟画图


一、初始化

英文:turtle 中文:海龟
海龟能在一个画布上游走,游走的轨迹就形成了绘制的图形。
1.怎么在 Python 编程中找到海龟呢?
答:导入海龟画图工具: import turtle
2. 怎么用海龟这个工具?
初始化海龟,例如设置画布大小与位置、画笔颜色、粗细、抬笔还是落笔。

import turtle # 导入库 ( 必须导入库,后面才能用其他功能 )
# 画布大小与位置,每一行代码自己运行下
turtle.setup(600,400,0,0) # 600 ,宽 400 ,在左上角
turtle.setup(500,400)        # 长 500 ,宽 400 默认中间位置
width:设置窗口的宽度,默认为屏幕的 50%。
height:设置窗口的高度,默认为屏幕的 50%。
startx:窗口距离屏幕左边缘多少距离,负值表示距离右边缘,None 表示窗口水平居中。
starty:窗口距离屏幕上边缘多少距离,负值表示距离下边缘,None 表示窗口垂直居中。

turtle.setup(600,400)       画布的大小 长600,宽400

turtle.pensize(5)               画笔大小 5

turtle.pencolor("red")      画笔颜色 红色

turtle.pendown()              落笔

turtle.penup()                   抬笔

turtle.forward(200)           前进 200

turtle.backward(100)        后退 100

turtle.right(90)            右转 90

turtle.left(90)              左转 90

turtle.seth(90)           朝向正上方


1 :请编程实现让画笔,往前走 100 ,再左转 120 100 ,再左转 120 100 最终得到一个正三角形
要求: 1. 画布默认在中间 长 600 ,宽 400; 2. 画笔大小 6, 颜色蓝色;
import turtle   #导入库
# 画布大小与位置
#turtle.setup(600,400) # 长600,宽400,在左上角
#turtle.setup(500,400)# 长500,宽400 默认中间位置

#turtle.pensize(4)
#turtle.pencolor("blue")
# 1.画三角形
# turtle.seth(90) # 向上画
turtle.forward(100)
turtle.left(120)
turtle.forward(100)
turtle.left(120)
turtle.forward(100)
turtle.left(120)

二、坐标与角度

海龟画笔 默认 一开始的位置坐标是中间(0,0)位置,
头朝向正右方,角度 seth 为 0;
正上方角度 seth 为 90;正左方角度 seth 为 180;
正下方角度为 270 或-90。

对“练 1”题进行修改,从正上方开始画,该怎么画呢?


 用 turtle.goto 可以把画笔移到相应的坐标位置。

turtle.goto(100,0)#移动到(100,0)的位置,画一条 100 长度的直线。

请用两种方式画出一个正方形,如上图:。
要求:1. 画布长 800,宽 600,在(200,200)位置;2.画笔大小 4 颜色紫色;3. 从正下方开始画,边长 200。
# 2.画正方形
turtle.setup(800,600,200,200)
turtle.pensize(4)
turtle.pencolor("purple")
turtle.seth(270)

turtle.forward(200)
turtle.left(90)
turtle.forward(200)
turtle.left(90)
turtle.forward(200)
turtle.left(90)
turtle.forward(200)
turtle.left(90)

# 2.坐标画正方形

turtle.setup(800,600,200,200)
turtle.pensize(4)
turtle.pencolor( "purple" )
turtle.seth(270) #不影响
turtle.goto(200,0)
turtle.goto(200,-200)
turtle.goto(0,-200)
turtle.goto(0,0)

练 3:那如何把正方形画在画布中心位置?
答:
1.初始化完成后,使用抬笔 goto 移到正方形某顶点位置,例如 goto(-100,-100);
2.移好位置,落笔,用“练 2 ”的代码修改后即可。
请你来完成下这个大大的作品。
turtle.penup()
turtle.goto(-100,-100)
turtle.pendown()
#画边长200的正方形
turtle.forward(200)
turtle.left(90)
turtle.forward(200)
turtle.left(90)
turtle.forward(200)
turtle.left(90)
turtle.forward(200)

三、画圆与点与技巧

海龟画笔,我们可以调整它的 速度、隐藏还是显示、关闭停止、回到原点 等。
turtle.speed(1)       # 设置画笔移动速度为 1 ,速度最快为 0
turtle.hideturtle()   # 隐藏画笔
turtle.showturtle() # 显示画笔
turtle.home()      # 返回原点,回到默认方向,有痕迹
turtle.done()       # 停止画笔等待关闭
turtle.speed(2)       # 画笔速度 2
turtle.goto(200,0)
turtle.hideturtle()   # 隐藏画笔
turtle.goto(200,-200)
turtle.goto(0,-200)
turtle.showturtle() # 显示画笔
turtle.home()         #回到原点与默认方向
turtle.done()         #停止画笔等待关闭

turtle.circle( 半径 , 角度 )     画圆圈
turtle.color( 画笔 , 填充 )     设置画笔颜色,且填充颜色
turtle.dot( 直径 , 颜色 )         画点
turtle.circle(100) # 半径为正,圆心在画笔箭头方向的左边,顺时针绕圆心画。
turtle.circle(-50) # 半径为负,圆心在画笔箭头方向的右边,顺时针绕圆心画。

4 :请在原点画出上下左右四个圆 ( 填空 )
要求 : 1. 在原点位置,画笔粗细 5 ,每个圆要不同的颜色,半径为 80

import turtle

turtle.pensize(5)

turtle.               # 原点

turtle.                   # 默认黑色,画上圆

turtle.seth(   )          # 面向上方

turtle.pencolor(     )    # 红色

turtle.circle(80)         # 画左边圆

turtle.seth(180)          # 面向左方

turtle.color(     )       # 黄色

turtle.circle(80)         # 画下边圆

turtle.                   # 面向左方

turtle.                   #

turtle.                   # 画右边圆


练 5:画三个点,连接起来是一个正三角形的样子。
1. 边长 150,要把三角形的中点放在原点位置;
2. 每个点都是不同的颜色,直径为 25;最后隐藏画笔。
#练5:画三个点,连接起来是一个正三角形的样子。
turtle.fillcolor("blue")
turtle.begin_fill()
turtle.pensize(6)
turtle.forward(100)
turtle.dot(25,"green")
turtle.left(120)
turtle.forward(200)
turtle.dot(25,"orange")
turtle.left(120)
turtle.forward(200)
turtle.dot(25,"black")
turtle.left(120)
turtle.forward(100)
turtle.end_fill()
turtle.hideturtle()


四、填充颜色与圆内内切多边形

turtle.fillcolor("red") #设置填充颜色为红色
turtle.begin_fill() #开始填充
turtle.end_fill() #填充结束
turtle.circle(130,steps=6) # circle( 半径 , steps= 边数 )
先声明要填充的颜 色 turtle.fillcolor("red"), 从什么时候开始填充 。 turtle.begin_fill()到什么时候填充结束 turtle.end_fill()。如上图。
练 6:画一个直径 260 的圆圈,圆内切正六边形,且填充颜色为红色。
#练6:画一个直径260的圆圈,圆内切正六边形,且填充颜色为红色。
turtle.pensize(5)
turtle.fillcolor("red")
turtle.circle(130)
turtle.begin_fill()
turtle.circle(130,steps=6)
turtle.end_fill()
turtle.hideturtle()

炼 海龟画图

1.绘制如下图形,一个正方形,内有三个红点,中间红点在正方形中心。要求如下:

(1)正方形边长为 200,线条为黑色;
(2)圆点的直径均为 20 ,填充颜色为红色,画完后隐藏画笔;
(3)中间圆点的圆心位置为画布正中心,三个圆心之间距离相隔为 40。

 2.绘制如下图形:  

(1)画一个由一个正方形和一个菱形组成的图形,其中,正方形的边长为 200
象素,菱形的四个顶点均在正方形四条边的中点上;
(2)设置画笔速度为 1;
(3)菱形的填充颜色为红色,所有线条为黑色;
(4)画图结束,隐藏并停止画笔。
3.绘制如下图形,相关参数及要求如下:
(1)画笔起始位置不限,但是整个图形必须要能够在画布中呈现;
(2)大的正方形由四个小正方形组成;
(3)每个小正方形的边长均为 100 像素;
(4)左上角和右下角的正方形填充颜色均为黑色;
(5)所有的线条颜色均为黑色;
(6)绘制完成后,隐藏画笔。


 4.作图题: 请使用 turtle 画出如下标志。

要求:
(1)线条颜色为黑色,线条粗细为 10;
(2)圆半径为 50,填充颜色为蓝色;
(3)等边三角形边长为 180;
(4)等边三角形底边中点位置为画布正中心。

5.“天狗吃月亮”是一个古老的神话,以前古人不了解月食这一现象,所以说月
亮被狗吃了,天狗吃月亮是古人对“月食”这一天文现象的简称。月食是自然界
的一种现象,当太阳、地球、月球三者恰好或几乎在同一条直线上时(地球在太
阳和月球之间),太阳到月球的光线便会部分或完全地被地球遮挡,产生月食。
请你设计一段程序完成下列图片的月食现象。
要求
(1)海龟的初始位置的坐标为(0,0),月食现象的图片需在整个画布中完整 呈现;
(2)月食现象由两个圆或点组成,分别为半径不同的黄色和白色的圆或点;
(3)绘制半径为 150 的圆或点,并填充颜色为黄色,该图形的中心位置为画布的正中心位置(0,0);
(4)绘制半径为 75 的圆或点,并填充颜色为白色,该图形的中心位置坐标为 (150,0)。

 

 

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

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

相关文章

从0到1实现python基于RPC协议的接口自动化测试

01、什么是RPC RPC(Remote Procedure Call)远程过程调用协议是一个用于建立适当框架的协议。从本质上讲,它使一台机器上的程序能够调用另一台机器上的子程序,而不会意识到它是远程的。 RPC 是一种软件通信协议,一个程…

安装HBase集群

安装HBase集群 1 软件环境 注:我的Hadoop环境已经安装完成。 1.1 版本选择 版本的兼容问题很重要!! 软件环境版本号备注CentOS77.6JDK1.8.0Hadoop3.1.3hadoop-3.1.3.tar.gzZooKeeper3.6.3apache-zookeeper-3.6.3-bin.tar.gzHBase2.4.15h…

宝塔centos7安装Conda

前言:最近学习了python,主要原因是公司主营百度相关业务,接触了一下paddle Ai开发套件,其中paddlehub安装一直有问题,windows环境也好还是liunx环境也好一直安装不了最新版本,应该是某个库版本问题&#xf…

shell脚本编程

shell介绍 Shell的本意是“壳”的意思,它是相对于操作系统的“壳”。外界的操作不能直接调用操作系统内核,需要通过Shell脚本进行调用。 Shell本质是一个解释器程序,用于接受应用程序/用户命令,然后调用操作系统内核。Shell还是一个功能相当强大的编程语言,易编写,易调…

c++的STL+string

目录 STL 什么是STL&#xff1f; STL有哪些版本&#xff1f; string string的使用&#xff1a; string st1 st2 "北山口镇"​编辑 string st3 "巩义市" string st4(10, *) cout << st1 << endl string st6(st2); string st7 st2; …

0086 Java核心技术卷I Chapter05

目录 5.6枚举类 5.7 反射 5.7.1 Class类 4.7.2 声明异常入门 5.7.3 资源 5.7.4 利用反射分析类的能力 5.7.5 使用反射在运行时分析对象 5.7.6 使用反射编写泛型数组代码 5.7.7 调用任意方法和构造器 5.8 继承的设计技巧 5.6枚举类 public enum Size{SMALL,…

Android聚合SDK母包反编译出包教程

文章目录【前言】一、SDK预处理1、SDK资源合并1.1、合并res目录下的资源1.2、合并libs目录1.3、合并assets目录1.4、合并AndroidManifest.xml1.5、合并jar2、jar转smali2.1、jar 混淆合并2.2、jar转dex2.3、dex转smali二、母包apk反编译1、删除母包模板代码1.1、删掉母包SDK相关…

初识C++ (五)

作者&#xff1a;小萌新 专栏&#xff1a;初阶C 作者简介&#xff1a;大二学生 希望能和大家一起进步 内容简介&#xff1a;本文会简单的介绍auto关键字 还有nullptr关键字 加油&#xff01; 初识Cauto关键字c语言之前的用法C中的新用法auto使用细则auto不能使用的场景1. 未初…

直击固定资产管理痛点,让企业轻松管理海量固定资产

随着固定资产数量和种类、人员、分支机构越来越多&#xff0c;固定资产管理难度加大。传统人工表格管理固定资产的方式在具体实施过程中&#xff0c;会有种种痛点。 1)资产种类繁多&#xff0c;存放地分散且人员变更频繁&#xff0c;管理难度大。 2)盘点费时费力&#xff0c;手…

云原生Kubernetes 基本概念和术语

一、概述 Kubernetes 中的大部分概念如 Node 、 Pod 、 Replication Controller 、 Service 等都可以看作一 种“资源对象”&#xff0c;几乎所有的资源对象都可以通过 Kubernetes 提供的 kubectl 工具&#xff08;或者 API 编程调用&#xff09;执行增、删、改、查等操作并将…

工作中何如来合理分配核心线程数?

文章目录一 回顾1.1 使用线程池的优点1.2 任务类型1.3 IO密集型任务确定线程数1.4 CPU密集型任务确定线程数1.5 混合型任务确定线程数一 回顾 1.1 使用线程池的优点 降低资源消耗&#xff1a;线程是稀缺资源&#xff0c;如果无限制地创建&#xff0c;不仅会消耗系统资源&…

学习笔记-Windows 安全

Windows 安全 注 : 笔记中拓扑图 drawio 源文件在其图片目录下 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 大纲 漏洞利用 LOL RDP 命令行开启RDP多开连接记录凭据窃取绕过组策略限制绕过本地安全策略限制…

手机浏览器怎么下载视频,第三方手机浏览器下载视频的方法

在我们的手机中&#xff0c;总少不了一款手机浏览器。很多人经常使用手机浏览器看视频&#xff0c;那么如何在网页中将喜欢的视频下载下载下来呢&#xff1f;下面给大家讲解UC浏览器、多御安全浏览器、QQ浏览器下载视频的方法&#xff0c;有需要的朋友可以继续往下看。 UC浏览器…

如何写成高性能的代码(三):巧用稀疏矩阵节省内存占用

稀疏矩阵的概念 一个mn的矩阵是一个由m行n列元素排列成的矩形阵列。矩阵里的元素可以是数字、符号及其他的类型的元素。 一般来说&#xff0c;在矩阵中&#xff0c;若数值为0的元素数目远远多于非0元素的数目&#xff0c;并且非0元素分布没有规律时&#xff0c;则称该矩阵为稀…

【数据结构】详解顺序表(图解)

目录一、顺序表的概念1.1、静态顺序表1.2、动态顺序表二、接口实现2.1、开辟一个动态顺序表及初始化2.2、顺序表的增容2.3、顺序表的尾插及尾删2.4、顺序表的头插及头删2.5、顺序表在pos处插入及删除数据2.6、顺序表的销毁及打印2.7、顺序表的查找及修改一、顺序表的概念 顺序表…

【linux/docker】解决ORA-28000: the account is locked

项目场景&#xff1a; oracle11g客户端连接失败 问题描述 java.sql.SQLException: ORA-28000: the account is locked 原因分析&#xff1a; 由于oracle 11g 在默认在default概要文件中设置了密码最大错误次数为10&#xff0c;“FAILED_LOGIN_ATTEMPTS10”&#xff0c;密码错误…

单商户商城系统功能拆解25—营销中心—优惠券

单商户商城系统&#xff0c;也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法&#xff0c;例如拼团&#xff0c;秒杀&#xff0c;砍价&#xff0c;包邮…

NumPy数组基础

一、NumPy数组属性 首先我们先了解一下NumPy 数组属性。NumPy 的数组中比较重要 ndarray 对象属性有&#xff1a; 属性说明ndarray.ndim秩&#xff0c;即轴的数量或维度的数量ndarray.shape数组的维度&#xff0c;对于矩阵&#xff0c;n 行 m 列ndarray.size数组元素的总个数…

Python应用开发——串口通信

Python应用开发——串口通信 目录Python应用开发——串口通信前言1 环境搭建2 硬件准备3 代码编写与测试3.1 简单测一下串口收发3.2 补充细节3.3 完善整个收发流程结束语前言 在嵌入式开发中我们经常会用到串口&#xff0c;串口通信简单&#xff0c;使用起来方便&#xff0c;且…

20:访问者模式

1&#xff1a;定义 封装一些作用于某种数据结构中的各元素的操作&#xff0c;它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 2&#xff1a;结构 访问者模式包含以下主要角色: 抽象访问者&#xff08;Visitor&#xff09;角色&#xff1a;定义了对每一个元…