Python中的高级turtle(海龟)作图(续)
四、填色
color 函数有三个参数。第一个参数指定有多少红色,第二个指定有多少绿色,第三个指定有多少蓝色。比如,要得到车子的亮红色,我们用 color(1,0,0),也就是让海龟用百分之百的红色画笔。
这种红色、绿色、蓝色的混搭叫做RGB(Red,Green,Blue)。因为红绿蓝是色光上的三原色,任何颜色都可以通过改变三原色的比重来调配出来。
虽然我们不是在计算机屏幕上混合颜料(我们用的是光!),但我们可以把RGB方案想象成三个颜料桶,一个红的,一个绿的和一个蓝的。每个桶里都是满的,我们可以看成满桶的值是1(100%)。然后把所有的红颜料和绿颜料混在一起放在一个大缸里,这样就产生了黄色。
现在我们尝试用海龟画一个黄色的圆,我们要用100%的红色和绿色颜料,不能使用蓝色:
效果如下:
>>> t.color(1,1,0) ##100%的红色,100%的绿色,0%的蓝色
>>> t.begin_fill() ##给后面的形状填色
>>> t.circle(50)
>>> t.end_fill() ##用RGB颜色来给圆填色
黄色的圆
1,用来画填色圆形的函数
为了更容易地用不同的颜色来试验,我们来把画圆填色的代码写成一个函数:
>>> def mycircle(red,green,blue):
t.color(red,green,blue)
t.begin_fill()
t.circle(50)
t.end_fill()
我们可以只用绿色来画一个很亮的绿色的圆,如图A:
>>> mycircle(0,1,0)
也可以用一半的绿色(0.5)来画一个深绿色的圆,如图B:
>>> mycircle(0,0.5,0)
A: B:
2,使用纯白和纯黑
当天空没有了太阳,世界就变得一切黑暗(假设我们那时候还没有发明灯)。类比,如果让三种颜色都设置为0,就相当于没有光,这时候画出来的图形都是黑色的;反之为1全为白。
>>> mycircle(0,0,0)
五、画正方形的函数
>>> def mysquare(size):
for x in range(1,5):
t.forward(size)
t.left(90)
>>> mysquare(25)
>>> mysquare(50)
>>> mysquare(75)
>>> mysquare(100)
>>> mysquare(125)
效果如下:
六、画填色正方形
要对正方形填色,首先要重置画布,开始填色,然后在调用正方形函数,过程如下:
>>> t.reset()
>>> t.begin_fill()
>>> mysquare(50)
>>> t.end_fill() ##加入这行代码前,你应当看到一个空的正方形,直到你结束填充
效果如下:
我们现在可以改变下这个函数,让它既可以画填好的正方形也可以画不填色的正方形。
>>> def mysquare(size,filled):
if filled == True:
t.begin_fill()
for x in range(1,5):
t.forward(size)
t.left(90)
if filled == True:
t.end_fill()
下面我们可以画一个填了色的正方形:
>>> mysquare(50,True)
接着画一个没有填色的正方形:
>>> mysquare(150,False)
七、画填好色的星星
现在我们要写一个mystar函数
>>> def mystar(size,filled):
if filled == True: ##检查filled是否为真
t.begin_fill() ##如果是的话开始填充
for x in range(1,19):
t.forward(size)
if x % 2 == 0:
t.left(175)
else:
t.left(225)
if filled == True:
t.end_fill()
mystar函数
现在我们可以画一个金色(90%红色,75%绿色,0%的蓝色)的星星
>>> t.color(0.9,0.75,0)
>>> mystar(120,True)
效果如下:
要给星星画上轮廓,把颜色改成黑色并且不用填色再画一遍星星:
>>> t.color(0,0,0)
>>> mystar(120,False)
效果如下:
总结
今天下午收获颇丰,忘记了吃饭,忘记了打游戏,一直在学习Python作图。学会了如何用turtle模块画几个基本的几何图形,还有用for循环和if语句来控制海龟在屏幕上的动作。同时可以改变海龟的笔的颜色并给它所画的形状填色。还用了一些函数(比如 def 函数)来重用绘图的代码,提高了效率。
Python中的高级turtle(海龟)作图(续)的更多相关文章
- Python中的高级turtle(海龟)作图
在Python里,海龟不仅可以画简单的黑线,还可以用它画更复杂的几何图形,用不同的颜色,甚至还可以给形状填色. 一.从基本的正方形开始 引入turtle模块并创建Pen对象: >>> ...
- Python中的高级数据结构详解
这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...
- Python中的高级数据结构(转)
add by zhj: Python中的高级数据结构 数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数 ...
- 小白学Python(20)—— Turtle 海龟绘图
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...
- Python中的高级变量类型
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...
- Python中的高级特性
1.切片.使用“[”和“]”即可,类似Matlab,可以切list,tuple,字符串等. 2.迭代.Python内置的enumerate函数可以把一个list变成索引-元素对. 3.列表生成式.列表 ...
- Python中的高级数据结构
数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数据结构,分别是List.Tuple.Dictionar ...
- python 中的高级函数filter()
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filt ...
- turtle海龟作图
个人心得:python这么火是有他的原因的,突然发现他的语言很有趣,库函数也很多. 这次是第一步,简单了解了一下turtle函数 import turtle import time def drawS ...
随机推荐
- mysql trigger 触发器
创建触发器: CREATE [DEFINER = {user|CURRENT_USER}] TRIGGER trigger_name trigger_time trigger_event ON tbl ...
- rdesktop 指定服务器的分频率
rdesktop -uAdministrator -g 1265x728 10.100.0.225 &
- regularization
https://www.zhihu.com/question/20924039 http://52opencourse.com/133/coursera%E5%85%AC%E5%BC%80%E8%AF ...
- Matlab 程序结束后发送短信或者邮件
近期,在服务器上运行matlab程序,由于数据比较多,程序比较复杂,运行时间不固定,而且需要经常改变参数,重复运行几次,所以不清楚程序何时结束,以便于修改参数,继续运行.开始有时间就看看程序是否运行结 ...
- 每日英语:Are Smartphones Turning Us Into Bad Samaritans?
In late September, on a crowded commuter train in San Francisco, a man shot and killed 20-year-old s ...
- Python 操作redis有序集合(sorted set)
#coding:utf8 import redis r =redis.Redis(host=") 1.Zadd Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中.如果某个成员 ...
- spark on alluxio和MR on alluxio测试(改进版)【转】
转自:http://kaimingwan.com/post/alluxio/spark-on-alluxiohe-mr-on-alluxioce-shi-gai-jin-ban 1. 介绍 2. 准备 ...
- kindeditor自定义插件插入视频代码
kindeditor自定义插件插入视频代码 1.添加插件js 目录:/kindeditor/plugins/diy_video/diy_video.js KindEditor.plugin('diy_ ...
- strrchr()函数
函数简介 函数名称: strrchr 函数原型:char *strrchr(const char *str, char c); 所属库: string.h 函数功能:查找一个字符c在另一个字符串str ...
- [转]handsontable常规配置的中文API
原文地址:http://blog.csdn.net/mafan121/article/details/46050049 常规配置: 1.固定行列位置 fixedRowsTop:行数 //固定顶部多少行 ...