临近圣诞节,圣诞树是必不可缺的节日象征。但获取圣诞树在现实生活中实为有限,另辟蹊径,大大小小形形色色的圣诞树也可以通过几行代码在屏幕上炫彩夺目,感受不一样的节日氛围——“turtle”引领的数字圣诞树之夜。
首先让我们了解一下几个神奇的库:turtle,random,time
一、Turtle
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
基础知识:
1. 画布(canvas)
画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。
2. 画笔
2.1 画笔的状态
在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
2.2 画笔的属性
画笔(画笔的属性,颜色、画线的宽度等)
1) turtle.pensize():设置画笔的宽度;
2) turtle.pencolor():没有参数传入,返回当前画笔颜色, 传入参数设置画笔颜色,可以是字符串如"green", "red",也 可以是RGB 3元组。
3) turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
2.3 绘图命令
操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。
(1) 画笔运动命令
(2) 画笔控制命令
(3) 全局控制命令
二、Random
★ random.randint(min,max): 随机生成[min,max]范围内的整数
三、Time
★ Python time sleep():函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间
from turtle import *import randomimport timen = 80.0speed("fastest")screensize(bg='seashell')left(90)forward(3*n)color("orange", "yellow")begin_fill()left(126)for i in range(5):forward(n/5)right(144)forward(n/5)left(72)end_fill()right(126)color("dark green")backward(n*4.8)def tree(d, s):if d <= 0: returnforward(s)tree(d-1, s*.8)right(120)tree(d-3, s*.5)right(120)tree(d-3, s*.5)right(120)backward(s)tree(15, n)backward(n/2)for i in range(200):a = 200 - 400 * random.random()b = 10 - 20 * random.random()up()forward(b)left(90)forward(a)down()if random.randint(0, 1) == 0:color('tomato')else:color('wheat')circle(2)up()backward(a)right(90)backward(b)time.sleep(60)
画图process部分展示:
参考链接:https://blog.csdn.net/qq_43468607/article/details/102228217
提前祝朋友们 Merry Christmas~
本期作者:曲思齐
本期编辑校对:陈颖姝

