1、简单的绘制圣诞树
新建tree1.py或者直接输入下面代码运行#声明树的高度
height = 5
树的雪花数,初始为1
stars = 1
以数的高度作为循环次数
for i in range(height):
print((' ' (height - i)) + ('' * stars))
stars += 2
输出树干
print((' ' * height) + '|')
1581558705868932.png
2、使用turtle绘制简单圣诞树
新建tree2py,输入以下代码#导入turtle库
import turtle
设置屏幕大小
screen = turtle.Screen()
screen.setup(800,600)
获取画笔并设置一些属性:圆形、红色、快
circle = turtle.Turtle()
circle.shape('circle')
circle.color('red')
circle.speed('fastest')
抬起画笔
circle.up()
重新获取画笔
square = turtle.Turtle()
重新设置画笔属性:四方形、绿色、快
square.shape('square')
square.color('green')
square.speed('fastest')
重新抬起画笔
square.up()
跳到指定坐标位置
circle.goto(0,280)
复制当前图形
circle.stamp()
k = 0
for i in range(1, 17):
y = 30*i
for j in range(i-k):
x = 30*j
square.goto(x,-y+280)
square.stamp()
square.goto(-x,-y+280)
square.stamp()
if i % 4 == 0:
x = 30*(j+1)
circle.color('red')
circle.goto(-x,-y+280)
circle.stamp()
circle.goto(x,-y+280)
circle.stamp()
k += 2
if i % 4 == 3:
x = 30*(j+1)
circle.color('yellow')
circle.goto(-x,-y+280)
circle.stamp()
circle.goto(x,-y+280)
circle.stamp()
square.color('brown')
for i in range(17,20):
y = 30*i
for j in range(3):
x = 30*j
square.goto(x,-y+280)
square.stamp()
square.goto(-x,-y+280)
square.stamp()
turtle.exitonclick()
运行:
1581558728714813.png
3、使用Turtle绘制复杂圣诞树
新建tree3.py,输入以下代码#导入所依赖的库
from turtle import *
import random
import time
n = 80.0
设置速度快
speed("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: return
forward(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)
运行:
1581558755216212.png