python控制画笔尺⼨_python教程系列终章:画笔控制Beetle.penDown()
Beetle.penUp()
Beetle.penDown()
插件Beetle.penUp()
Beetle.penDown()
Beetle.penUp()
Beetle.penDown()
Beetle.penUp()
实际上我们可以看到当画笔抬起来后我们依然可以让我们的bug移动,只不过不留下路径了。
3.2. 改变画笔的颜⾊
我们当然也可以改变我们的画笔颜⾊
⼤家可以点击颜⾊框打开颜⾊选择的框框,选择好⾃⼰喜欢的颜⾊再拖⼊python编辑器,
对应的代码如下:
Beetle.setColor("#5900ff")
其中setColor函数中的参数 **"#5900ff"**是颜⾊值的16进制表达,井号后⾯每两个字母分别对应红绿蓝三个颜⾊的值⼤⼩,从0到ff(0~255)。
我们改造⼀下上⼀节的Z字代码,让它画⼀个彩⾊的字母:
Beetle.direction(90)
Beetle.clear()
计算机程序设计语言特点Beetle.setPenSize(3)
Beetle.penDown()
Beetle.setColor("#FF0000")
Beetle.setColor("#00FF00")
Beetle.setColor("#0000FF")
⼤家注意观察下setColor中FF的位置变化如何控制颜⾊的变化。
3.3. 改变画笔的⼤⼩
在每⼀笔画完之后我们将笔的⼤⼩增加5个像素。
Beetle.direction(90)
Beetle.clear()
Beetle.setPenSize(3)
Beetle.penDown()
Beetle.setColor("#ff0000")
层次遍历二叉树Beetle.changePenSize(5)
Beetle.setColor("#00FF00")
Beetle.changePenSize(5)
Beetle.setColor("#0000FF")
3.4. 画⼀个圆
我们先从数学上来思考⼀个圈的属性。我们都知道⼀个圆有360度,如果我们每前进⼀步转1度,最后不就是⼀个圆了吗?我们先回到图形化模式快速验证下我们的想法。
点击绿旗帜看看最后的运⾏结果,注意这⾥我们使⽤了循环⽅块。
对应的python代码如下:
# -*- coding: utf-8 -*-
import _env, time, random
from scratch3 import *
Beetle = Sprite("Beetle")
x = 0
Beetle.direction(90)
getservletpathBeetle.clear()
Beetle.setPenSize(3)
Beetle.setColor("#ff0000")
Beetle.penDown()
python入门教程编辑器for count in range(360):
Beetle.turnLeft(1)
但是我们平时我们做算术题的时候都是使⽤半径和原点来定义⼀个圆的,这种bug作图完全没办法控制呀~
我们知道圆的周长是2x3.14x半径,如果我们要画⼀个半径为100的圆,那么每⼀步就应该是(2x3.14x100/360)= 1.745
我们来验证⼀下我们的想法,将for循环中移动的代码改造⼀下
并让bug⼀开始就处在负Y轴的(0,-100)位置
Beetle.direction(90)
Beetle.clear()
Beetle.setPenSize(3)
Beetle.setColor("#ff0000")
Beetle.penDown()
for count in range(360):
Beetle.turnLeft(1)
⼤家看看最终效果是不是⼀个圆⼼就在(0,0),半径为100的圆呢?
3.5. 函数化
我们上⾯画了⼀个完美的圆圈,但是我想让我们的代码更加通⽤,可以在任意位置,任意半径画圈圈,最好还可以改变颜⾊。。这时候就需要祭出python的函数功能了。
如果对python函数不熟悉的同学可以先⽤scratch3的⾃定义函数上⼿,我们点击⾃制积⽊->制作新的积⽊
之后定义⼀个具有四个输⼊参数的积⽊,分别对应圆的半径,原点x,原点y,颜⾊。
这⾥我们⾸先⽤图形化⽅块描述这个函数的功能,基本就是把我们前⾯画圆的代码重新使⽤输⼊参数抽象化:
之后转到python代码编辑器,注意点击**>**按钮重新⽣成python代码:
# -*- coding: utf-8 -*-
import _env, time, random
from scratch3 import *
Beetle = Sprite("Beetle")
x = 0
def circle(R, x, y, color):
Beetle.setColor(color)
Beetle.penDown()
Beetle.direction(90)
for count in range(360):
Beetle.turnLeft(1)
Beetle.penUp()
Beetle.setPenSize(3)
Beetle.clear()
circle(100, 0, 0, "#ff0000")
其中def circle(R, x, y, color):就是python下的函数定义了,其中def就是definition的缩写,表⽰后⾯是⼀个函数定义。紧接着是函数的名字,括号内对应的是函数的参数。图形化只是带领⼤家⼊门,关于python函数的花式玩法有很多,⼤家可以参考我们另外⼀篇micropython系列教程或者其他python教材
都有详细的阐述。
注意函数或者其他带作⽤域的定义均需要以冒号结尾,并且在下⼀⾏需要使⽤空格或者tab缩进。同样作⽤域的代码需要具有同样的缩进,不然python解释器运⾏的时候会报错,更糟糕的情况是完全给出错误的执⾏结果。
最后我们在python代码中加⼊随意的⼏个circle函数调⽤,并看看效果。
circle(100, 0, 0, "#ff0000")
circle(20, -20, 0, "#00ff00")
circle(40, 30, 30, "#ff0000")
hbase是什么化学物质circle(80, -20, 20, "#ff00ff")
circle(60, 0, 0, "#00ffff")
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论