Turtle绘制带颜色和字体的图形(Python3)
转载自https://blog.csdn.net/wumenglu1018/article/details/78184930
在Python中有很多编写图形程序的方法,一个简单的启动图形化程序设计的方法是使用Python内嵌的Turtle模块。Turtle是Python内嵌的绘制线、圆以及其他形状(包括文本)的图形模块。它很容易学习并且使用简单。
一个Turtle实际上是一个对象,在导入Turtle模块时,就创建了对象,然后,可以调用Turtle对象的各种方法完成不同的操作。
当创建一个Turtle对象时,它的位置被设定在(0,0)处——窗口的中心,而且它的方向被设置为向右。Turtle模块用笔来绘制图形。默认情况下,笔是向下的(就像真实的笔尖触碰着一张纸)。如果笔是向下的,那么当移动Turtle的时候,它就会绘制出一条从当前位置到新位置的线。
下面两个表是控制笔的绘制状态的方法和移动Turtle的方法:
circle方法有三个参数:radius是必需的,extent和step是可有可无的。extent是一个角度,它决定绘制圆的哪一部分。step决定使用的阶数。如果step是3/4/5/6……,那么circle方法将绘制一个里面包含被圆括住的的三边、四边、五边、六边或更多边形(即正三角形、正方形、五边形、六边形等)。如果不指定阶数,那么circle方法就只画一个圆。
下面表是Turtle笔的颜色、填充和绘制方法:
代码和执行实例:
(如果我理解有错误,希望大佬们一定要指出来
,不要误导了其他人才好)
附上面显示的彩色图形的完整代码:
import turtle turtle.pensize(3)
turtle.penup()
turtle.goto(-100, -50)
turtle.pendown()
turtle.begin_fill()
turtle.color("red")
turtle.circle(40, steps=3)
turtle.end_fill() turtle.penup()
turtle.goto(0, -50)
turtle.pendown()
turtle.begin_fill()
turtle.color("yellow")
turtle.circle(50)
turtle.end_fill() turtle.penup()
turtle.goto(100, -50)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor("green")
turtle.circle(40, steps=6)
turtle.end_fill() turtle.penup()
turtle.goto(-50, 100)
turtle.pendown()
turtle.color("blue")
turtle.write("Colorful Shapes", font = ("Times", 18,"bold"))
turtle.end_fill() turtle.hideturtle() turtle.done()
补充:
- import turtle:导入Turtle模块中定义的所有函数,这样就可以使用所有函数。
- penup()和pendown():设置抬起或放下笔以控制移动笔时是否绘制。刚学习时可能对这两个函数有点晕,我就这样理解:penup,抬起笔,就是我抬起笔来做动作,这时候笔没有挨着纸,所以之后移动时并不会画图形;pendown,落下笔,就是我现在将笔挨着纸了,一旦移动一步就会有个画出来的形状。
- forward():向箭头指的方向画形状
- write():写一个文本字符串
- Turtle的done()命令可以导致程序暂停直到用户关闭Python Turtle图形化窗口,它的目的是给用户时间来查看图形。没有这一行,图形窗口会在程序完成时立即关闭。
2017/10/9 20:45更新
先上代码:
<span style="font-size:18px;"># -*- coding: utf-8 -*-
"""
绘制带颜色和文字的图形
""" import turtle turtle.penup()
turtle.goto(-200, -50)
turtle.pendown()
turtle.begin_fill() #开始填充
turtle.color("black") #填充黑色
turtle.circle(40)
turtle.end_fill() #填充结束 turtle.color("red") #画笔颜色为红色
turtle.penup()
turtle.goto(-100, -50)
turtle.pendown()
turtle.circle(40, steps=3) turtle.color("purple") #画笔颜色为紫色
turtle.penup()
turtle.goto(0, -50)
turtle.pendown()
turtle.begin_fill() #开始填充
turtle.fillcolor("gray") #填充灰色
turtle.circle(40, steps=4)
turtle.end_fill() #填充结束 turtle.penup()
turtle.goto(100, -50)
turtle.pendown()
turtle.begin_fill() #开始填充
turtle.fillcolor("yellow") #fillcolor为黄色
turtle.color("purple") #color为紫色
turtle.circle(40, steps=5)
turtle.end_fill() #填充结束 turtle.penup()
turtle.goto(200, -50)
turtle.pendown()
turtle.begin_fill() #开始填充
turtle.color("yellow") #color为黄色
turtle.fillcolor("green") #fillcolor为绿色
turtle.circle(40, steps=6)
turtle.end_fill() #填充结束 turtle.color("blue")
turtle.penup()
turtle.goto(-50, 100)
turtle.pendown()
turtle.write("Colorful Shapes", font = ("Times", 18, "bold")) #隐藏箭头
turtle.hideturtle()
#暂停界面,使得用户能够看见展示的图形
turtle.done()</span>
执行结果:
- turtle.begin_fill():在填充图形前访问这个方法
- turtle.end_fill():在最后调用begin_fill之前填充绘制的图形
- turtle.color(c):设置笔的颜色
- turtle.fillcolor(c):设置笔填充颜色
所以:
在begin_fill()和end_fill()之间设置的turtle.color(c)和turtle.fillcolor(c)都可以作为填充色,例如黑色的圆。
将turtle.color(c)提到前面,不写begin_fill()和end_fill(),则就不会实现填充,例如红边的三角形。
将turtle.color(c)提到前面,并在begin_fill()和end_fill()之间设置turtle.fillcolor(c),那么图形的边框和内部填充颜色分别对应于color和fillcolor,例如紫边框灰色四边形。
在begin_fill()和end_fill()之间设置不同的turtle.color(c)和turtle.fillcolor(c),则以排序在后面的为准去填充图形,例如紫色五边形和黄边框绿色六边形。五边形的代码是先fillcolor黄色,然后color紫色覆盖,所以最终填充为紫色。六边形是先color黄色,这样就应该默认用黄色去填充,结果后面接着fillcolor绿色,所以最终填充为绿色。
所以,我上面的猜想不是很正确,刚处于学习阶段,有些思考还不到位~~~~~~
Turtle绘制带颜色和字体的图形(Python3)的更多相关文章
- CAD交互绘制带颜色宽度的直线(网页版)
用户可以在CAD控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE ...
- CAD交互绘制带颜色宽度的直线(com接口)
用户可以在控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY ...
- 花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量
背景 在日常操作Linux的情况下,总会遇到一些需求,比如说,把输出的内容用不同颜色标注出来,以达到醒目.提示的目的,那么如何在Linux终端输出带有颜色的字体呢? Linux终端输出字符颜色 ...
- python打印带颜色的字体
在python开发的过程中,经常会遇到需要打印各种信息.海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性.这时候,如果能给重要的信息加上字体颜色,那么就会更加方便用户阅读了. ...
- python控制台实现打印带颜色的字体
控制台颜色分类: 数值表示的参数含义: 显示方式: 0(默认值).1(高亮).22(非粗体).4(下划线).24(非下划线). 5(闪烁).25(非闪烁).7(反显).27(非反显)前景色: 30(黑 ...
- Linux命令之dot - 绘制DOT语言脚本描述的图形
本文链接:http://codingstandards.iteye.com/blog/840055 用途说明 Graphviz (Graph Visualization Software的缩写)是一个 ...
- [转帖]MATLAB曲线绘制及颜色类型
信号源产生的方法 来源:http://www.2cto.com/kf/201401/270494.html matlab的checkerboard说明,GOOD! 来源:http://www.chi ...
- Python turtle绘制阴阳太极图代码解析
本文详细分析如何使用Python turtle绘制阴阳太极图,先来分解这个图形,图片中有四种颜色,每条曲线上的箭头表示乌龟移动的方向,首先从中心画一个半圆(红线),以红线所示圆的直径作半径画一个校园, ...
- [转]改变UITextField placeHolder颜色、字体
本文转载至 http://m.blog.csdn.net/blog/a394318511/8025170 我们有时需要定制化UITextField对象的风格,可以添加许多不同的重写方法,来改变文本字段 ...
随机推荐
- 解读经典《C#高级编程》第七版 Page79-93.对象和类型.Chapter3
前言 本篇我们继续讲解本章其余的部分:构造函数.只读字段.匿名类型.结构详解.部分类.静态类.Object类.扩展方法,等. 01 类 构造函数 构造函数是一种特殊的方法: 与类同名 没有返回值,甚至 ...
- Java之判断大整数是否为平方数
在本篇博客中,我们将讨论如何使用有效的算法来判断一个大整数是否为平方数. 给定正整数\(n\),如果存在一个整数\(m\),满足\(m^{2}=n\),那么则称\(n\)为平方数.因此,判断一 ...
- 【转载】 C#中全角转半角以及半角转全角
半角指的是一个字符占用一个标准字符的位置.全角指一个字符占用两个标准字符位置的状态.在C#中,我们可以通过程序的方法,将相应的半角字符串信息转换为全角类型,也可以实现全角转半角功能. 相应封装好的方法 ...
- MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
在上一章中我们学习了<MyBatis学习总结(一)——ORM概要与MyBatis快速起步>,这一章主要是介绍MyBatis核心配置文件.使用接口+XML实现完整数据访问.输入参数映射与输出 ...
- 原创SQlServer数据库生成简单的说明文档包含(存储过程、视图、数据库批量备份)小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
- mybatis_13一级缓存
1. Mybatis的缓存理解 Mybatis的缓存,包括一级缓存和二级缓存,一级缓存是默认使用的.二级缓存需要手动开启. 一级缓存指的就是sqlsession,在sqlsession中有一个数据区域 ...
- 设计模式—装饰模式的C++实现
这是Bwar在2009年写的设计模式C++实现,代码均可编译可运行,一直存在自己的电脑里,曾经在团队技术分享中分享过,现搬到线上来. 1. 装饰模式简述 1.1 目的 动态地给一个对象添加一些额外的职 ...
- 记录使用Redis和nginx 实现一个简单的负载均衡(FB)
这两年在博客园看了不少大牛的分享,一直打算能写点什么东西. 之前偶然看见一个利用Redis 当作 Session数据宿主的demo,出处我已经找不到了.后来没事看了看nginx相关的东西.其中负载均衡 ...
- blfs(systemd版本)学习笔记-安装、配置和使用wpa_supplicant无线网络连接工具
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! wireless项目地址:http://www.linuxfromscratch.org/blfs/view/stable-sy ...
- js 提取某()特殊字符串长度
// 提取特殊字符串长度(scrstr 源字符串 armstr 特殊字符) getStrCount: function(scrstr, armstr) { var count = 0; while ( ...