由绘制python蟒蛇实例来整体掌握turtle绘图方法

经典案例:python蟒蛇的绘制

话不多说,直接上代码,先整体感知turtle图形绘制。

print("python蟒蛇的绘制")
import turtle as t#引入turtle库函数来实现绘图功能
#并使用import...as...使turtle起个小名为t,使代码简洁
t.setup(900,400,200,200)#建立一个宽度为900像素高度为400像素的画布
#窗体左上角坐标为(200,200),以编译器屏幕左上角为绝对原点
t.penup()#画笔抬起
t.fd(-200)#使“小海龟”即鼠标初始位置向反方向移动200像素
t.pendown()#画笔落下
t.pensize(25)#调整画笔粗细为25像素
t.color("green")#调整画笔颜色为绿色
t.seth(-40)#使“海龟”初始朝向为负40度
for i in range(5):#range(5)代表0,1,2,3,4,是for循环的迭代对象t.circle(40,80)#表示以40为半径,画出角度为80度的弧线t.circle(-40,80)#表示以-40像素为半径即与刚才方向相反画出80度角的弧线
t.circle(40,40)
t.fd(20)#向前运动20像素,形成脖子
t.circle(32,180)#形成头
t.fd(40*2/3)
t.done()#绘画结束

运行结果:
调试结果
————————————————————
是不是感觉就这点小图形十几行代码究竟能蕴含多少turtle绘图知识呢?别说,python蟒蛇的绘制作为图像绘制的经典案例,其基本包含了turtle绘图的大数操作与知识。下面我将详细介绍turtle绘图的具体方法。

————————————————————

前言: turtle库函数是python中最常用也是最基本的绘图库函数。turtle意为”海龟”,可以想象每一次的作画都是调用turtle中的库函数使海龟移动,形成痕迹,进而画出各种图形。下面详细介绍控制画笔(海龟)的各种函数。

————————————————————

(1)建立画布函数turtle.setup(a,b,c,d)

◆a表示画布的宽度,b表示画布的高度,c和d是指画布左上角以编译器界面左上角为原点的横纵坐标。

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

#画布的建立
import turtle as t
t.setup(800,400,200,300)

调试结果:
在这里插入图片描述
————————————————————

(2)画笔控制函数turtle.pensize(),turtle.pencolor(),turtle.penup(),turtle.down()

————————————————————
1.turtle.pensize(x) :顾名思义,控制画笔的粗细为x像素
————————————————————

2.turtle.pencolor(): 控制画笔颜色的函数,其参数有三种方式:
第一:◆可以是表示颜色的字符串,且字符串要小些形式。如:turtle.pencolor(“purple”)表示使画笔颜色为紫色。
第二:◆RGB颜色体系中的小数值或者整数值,如:turtle.pencolor(0.63,0.13,0.94)或者turtle.pencolor(160,32,240)均表示使画
笔颜色为紫色。直接给出RGB颜色体系中的三个通道的值来匹配对应的颜色。
第三:◆RGB的元组值,即turtle.pencolor((0.63,0.13,0.94))将其变为一个元组类型的值来引用。

————————————————————

★RGB色彩体系介绍★:

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

————————————————————
3.turtle.penup() : 是画笔抬起,即海龟在飞行,turtle.pendown(): 画笔落下,即海龟落地,二者主要是为了调整海龟的初始位置,即画笔的起点,从哪里开始画。在画笔抬起期间,一切的运动行进均不在画布上留下痕迹。
————————————————————

★注意:画笔设置后一直有效,直至下一次重新设置。

————————————————————

(3)运动控制函数 turtle.fd(x),turtle.circle(r,extend)和turtle.goto(x,y)

————————————————————
1.turtle.fd(x) 函数:表示向前运动x个像素的距离,注意x可以为负,即表示向当前的反方向运动x个像素的距离。
作用:使海龟走直线。

————————————————————
2. turtle.circle(r,extend)函数:表示以r为半径绘制一个extend角度的弧形。默认圆心在海龟左侧r距离的位置,-r则表示以海龟右侧r位置为圆心开始绘制。角度默认360度为整圆。
作用:使海龟走曲线

————————————————————
3.turtle.goto(x,y)函数:表示让海龟去到以初始位置为原点建立坐标系的坐标为(x,y)的地点
作用:使海龟走直线,点与点的连线

▲绝对坐标如图:
在这里插入图片描述

▲运动控制函数小例子:

运动控制函数示例
import turtle as t
t.circle(100)
t.fd(200)
t.fd(-400)
t.circle(100,180)
t.goto(0,0)

运行结果:
在这里插入图片描述
————————————————————

(4)方向控制函数: turtle.seth(angle),turtle.left(angle),turtle.right(angle)

————————————————————
第一:绝对角度下的转向:即以海龟初始位置为原点所建立的坐标系下的视角与角度,见下图:

在这里插入图片描述
————————————————————
●turtle.seth(45)表示使海龟转向绝对角度中的45度方向
●turtle,seth(-135)表示使海龟转向绝对角度下的-135度方向
如图:

在这里插入图片描述
————————————————————
第二:海龟角度下的转向,容易理解。
turtle.left(x),turtle.right(y)表示让海龟分别向左与向右转动x,y 角度。海龟视角如下:

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

(5)import 引用库函数的使用

————————————————————
1. 首推import…as…函数,即将所引用的库函数起个小名,使得代码简洁★
在这里插入图片描述
————————————————————
2. from…import 这一用法也很简洁,但是有个缺点:当引用的库函数很多时,可能会使调用函数重名*
在这里插入图片描述
————————————————————

(6)循环语句与range()函数:

————————————————————
第一,range()函数产生循环计数序列,有两种使用方法:
1.range(n): 表示0,1,2,3,4…n-1的这一系列的数字
2.range(m,n):表示m,m+1,m+2…n-1的这一系列数字

————————————————————
第二,循环语句: for i in range(5): i 是循环变量,range(5)称为循环的迭代对象,表示将变量i 从0,1,2,3,4 这五个数字中遍历,实现5次循环
作用:循环重复操作,如画出蟒蛇的例子中画蛇有几节身的时候。

————————————————————

★掌握这些知识后并加以熟练的运用,就可以带着你天马行空的想象力开启你自己的turtle绘图之旅啦!下面来欣赏一下本人初次学会turtle绘图后的杰作,嘿嘿。︿ ︿

————————————————————

(1)送你一朵小红花——圆规作图经常画

import turtle as t
t.penup()
t.fd(-100)#画笔起飞即海龟飞行,往左边移动100个像素,调整其初始位置
t.pendown()
t.penup()
t.pensize(10)#调整画笔的粗细
t.pencolor("red")
t.pendown()
t.circle(150,180)#以150个像素为半径画出一个度数为180的半圆
t.left(90)#调整海龟方向,左转90度
t.circle(150,180)
t.left(90)
t.circle(150,180)
t.left(90)
t.circle(150,180)

运行结果:
在这里插入图片描述
————————————————————

(2)七彩棒棒糖——感受下循环的魅力

import turtle as t#给库函数起小名为t,使得代码简洁
t.setup(800,800,200,300)#建立画布
t.pensize(7)#调整画笔粗细为7个像素与颜色为紫色
t.pencolor("purple")
for j in range(3):#循环3次画半圆,每次画完右转45度角t.circle(150 ,180)t.right(45)
t.pencolor("black")
for j in range(3):t.circle(150 ,180)t.right(45)
t.pencolor("blue")
for k in range(2):t.circle(150 ,180)t.right(45)t.pensize(6)
t.pencolor("blue")
for j in range(3):t.circle(120 ,180)t.right(45)
t.pencolor("green")
for j in range(3):t.circle(120 ,180)t.right(45)
t.pencolor("red")
for k in range(2):t.circle(120 ,180)t.right(45)
t.pensize(5)
t.pencolor("red")
for j in range(3):t.circle(100 ,180)t.right(45)
t.pencolor("blue")
for j in range(3):t.circle(100 ,180)t.right(45)
t.pencolor("black")
for k in range(2):t.circle(100 ,180)t.right(45)t.pensize(4)
t.pencolor("black")
for j in range(3):t.circle(80 ,180)t.right(45)
t.pencolor("purple")
for j in range(3):t.circle(80 ,180)t.right(45)
t.pencolor("green")
for k in range(2):t.circle(80 ,180)t.right(45)
t.pensize(3)
t.pencolor("green")
for j in range(3):t.circle(60 ,180)t.right(45)
t.pencolor("red")
for j in range(3):t.circle(60 ,180)t.right(45)
t.pencolor("purple")
for k in range(2):t.circle(60 ,180)t.right(45)t.pensize(2)
t.pencolor("purple")
for j in range(3):t.circle(40 ,180)t.right(45)
t.pencolor("blue")
for j in range(3):t.circle(40 ,180)t.right(45)
t.pencolor("red")
for k in range(2):t.circle(40 ,180)t.right(45)
t.pensize(1)
t.pencolor("red")
for j in range(3):t.circle(20 ,180)t.right(45)
t.pencolor("purple")
for j in range(3):t.circle(20 ,180)t.right(45)
t.pencolor("black")
for k in range(2):t.circle(20 ,180)t.right(45)
t.pensize(10)
t.pencolor("black")#制作棒棒糖杆
t.goto(500,-500)
t.done()

运行结果:
在这里插入图片描述

解释:别看代码一百多行,其实本质上就十几行,总共7次外循环,每次外循环内部又有3次内循环,所以也就21次循环,造就出这么个看了有点花眼但又有规律可循的“七彩花球”。小海龟说:“如果你愿意,我可以一直循环画下去。”哈哈哈!︿ ︿

————————————————————

结尾:★原创不易★ 写博客,一方面把学习的内容与经验分享给大家,一方面记录学习过程供以后回顾。希望大家多多关注我,我们一起学Python,相互促进,共同成长! ——深蓝

在这里插入图片描述

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

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

相关文章

七夕节快到了,教你用MATLAB绘制blingbling的大钻石

1效果 2程序说明 其实非常简单,只需要计算出各个顶点位置,并用fill3绘制一个个面出来即可,为了钻石的色彩更加丰富,我们用light函数设置了光照并为fill3创建出的PATCH对象设置了以下属性。 FaceAlpha 面透明度EdgeAlpha 边透明度…

520还在画玫瑰?教你用MATLAB画个玫瑰花球

效果如下: 原理 玫瑰绘制 要画花球我们要先会绘制一朵花: 如何画一朵花可以看看这篇:MATLAB 3D玫瑰花绘制 三维坐标变化 主要用下面的坐标变化方法: 正十二面体球 想像这里有一个正十二面体球,我们把每一面放上…

Android应用开发-学生信息管理系统

设计目的 1、网上很少有关于SQLite简单综合项目的测试APP。 2、把自己所学的部分UI综合一下,希望能给新手一些帮助。 涉及知识点 1、包括SQLite的增删查找等功能。查找中加入了“模糊搜索”的功能。 2、RecyclerView展示 3、SharedPreference保存密码&#xff0c…

基于Android的班级管理APP的设计与实现

选题背景 在当代大学生的日常学习和生活中,手机已经成为必不可少的工具,这导致大学学习生活中的各种日常生活及学习事务需要通过手机作为媒介进行通知及处理。而目前市场上存在的各种社交软件(如QQ、微信等)并不是为大学生量身定…

团队博客————学生成绩管理系统

项目简介: 支持实现教师端的登录注册,增添、修改与删除学生信息,增添学生时学号自动生成;将学生成绩导入并按照总分排序,查询成绩并支持模糊匹配;可导出学生成绩到excel表格;可生成以分数段划分…

基于android的学生选课信息app

学生选课系统是一个学校不可缺少的部分,该系统可以快速方便的使学生完成课程的选修及选修课程的管理,让管理员方便的管理选修课和设置选修时间,教师也可以查看自己代的选修课和给学生录入成绩。 本软件是一个Android 客户端JSP Servlet服务端…

安卓学生管理系统

安卓学生管理系统是大三时的期末作业,这里附上github链接,给需要交作业的小朋友~ app截图如下:

Android 学生管理系统

Android学生管理系统 由android mysql实现 1.需求分析 功能需求和页面需求两天没有细想,想到啥功能写啥功能想到啥界面写啥界面 2.系统设计 总体界面结构参照了微信的设计结构,主要功能包括管理员的注册和登录,所有学生信息的查询、单个…

奏响风电数字化“协奏曲”,联想助力世优电气打造智能管理闭环

双碳目标之下,可再生能源行业的快速增长,以及能源电力企业降本增效的需求,使得智能化管理平台成为新能源企业数字化转型的关键选择。 这一点,湖南世优电气股份有限公司(以下简称“世优电气”)感触颇深。作为…

探访世优科技数字人虚拟直播产品体系 | 世优开放日再次成功举行

2023年5月30日,世优科技全栈技术产品体验活动(第二期)顺利落下帷幕。此次活动共邀请到30余位各行各业的嘉宾到场,在两个多小时的开放日活动中,世优科技全面展示数字人及虚拟直播领域的技术产品体系。来访嘉宾们全程体验…

斩获5项大奖,世优科技虚拟人驱动技术亮相2022亚洲VRAR博览会

2022第6届以“开放共建创造融合”为主题的亚洲VR&AR博览会于8月12日落下帷幕。在数字经济发展和5G时代的大浪潮下,VR/AR产业链正在迎来加速发展,这从博览会的现场盛况可见一斑,本届展会吸引了众多来自海内外的VR/AR领域专家、学者&#x…

世优科技虚拟数字人直播方案,助力企业品牌破局直播同质化难题

随着互联网的快速发展,短视频带货、直播带货行业呈现出井喷式发展,网络电商直播已经成长为一个巨大的产业。预计2026年,我国网络直播市场规模将超过2万亿元。直播的快速发展越来越深刻地影响人们的消费及生活方式。但火热的同时,也…

元宇宙世界杯来袭,虚拟数字人+虚拟场景开创世界杯观赛全新体验

距离万众期盼的2022卡塔尔世界杯开幕已不足一周,世界杯作为全球最负盛名的体育赛事,不仅是球迷的节日,更是属于全民的狂欢。在开赛之际,中国移动重磅发布世界杯“元宇宙”全新玩法,通过融合“虚拟技术融合创新”全量全…

iDWF互博会即将开幕,世优科技携虚拟人女娲及虚拟直播SaaS平台亮相

助力数字经济发展的新引擎,探索“元宇宙”的新窗口,链接政产学研用金的新平台,全景数字生活的超级体验馆。以“通向数字新世界”为主题,2022互联网技术与应用博览会(简称:iDWF互博会)即将于2022…

AI数字人产品“世优BOTA”发布会 ,世优科技上海发起人刘凯源演讲回顾

4月20日,世优(北京)科技有限公司正式发布了新一代AI数字人产品——“世优BOTA”。世优科技上海发起人刘凯源表示,“数字人是元宇宙重要生产力,世优BOTA是人机交互的里程碑式作品”。世优BOTA可以帮助企业快速实现自有数…

2022科大讯飞全球1024开发者节科技共创,AI创新正当时

数字经济已成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。作为数字时代的核心引擎,人工智能正持续推动数万亿数字经济产业转型升级。 引领时代浪潮,科大讯飞全球1024开发者节,以AI开发者为受众群体,汇聚…

虚拟直播降低线上直播成本,虚拟直播如何助力企业抓住新风口?

近年来电商直播的渗透力在不断加强,但是直播形式单一,内容同质化等问题也逐渐显现,很多用户已经对电商直播产生了视觉疲劳。在这样的背景下,无论是平台还是品牌方,都想要寻求新技术、新模式,以实现直播新增…

山西文旅虚拟星推官“青鸟”亮相,世优科技提供虚拟人全栈技术支持

3月21日,由文化和旅游部资源开发司指导,山西省文化和旅游厅与太原市人民政府主办的2023数字文旅品牌创新大会在太原晋阳湖国际会议中心举行。 本次大会以“数字文旅美好生活”为主题,来自全国文旅业界的专家学者齐聚一堂,聚焦数字…

脑白金虚拟形象IP焕新升级,世优科技提供全栈式数字人制作支持

近日,脑白金虚拟形象迎来全新升级,在《球球大作战》7周年生日盛典之际,脑白金与球球大作战梦幻联动,推出了活力摇摆舞,重磅亮相央视六套。 世优科技通过实时虚拟数字人技术,将脑白金“老头、老太”和“球球…

咪咕视频卡塔尔世界杯XR虚拟直播,由世优科技提供虚拟技术支持

期待已久的2022卡塔尔世界杯,终于在北京时间11月21日0时拉开了帷幕。作为2022年卡塔尔世界杯足球赛的持权转播商,中国移动咪咕视频打造了国内首个“元宇宙”世界杯观赛空间,加上豪华解说天团,从科技、视觉、专业体育内容三条线路带…