分享给大家一篇文章,教你怎样用Python画了一棵圣诞树,快来学习。
如何用Python画一个圣诞树呢?
最简单:
-
height =
5
-
-
stars =
1
-
for i
in range(height):
-
print((
' ' * (height - i)) + (
'*' * stars))
-
stars +=
2
-
print((
' ' * height) +
'|')
效果:
哈哈哈哈,总有一种骗了大家的感觉。
其实本文是想介绍Turtle库来画圣诞树。
-
import turtle
-
-
screen = turtle.Screen()
-
screen.setup(
375,
700)
-
-
-
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,
13):
-
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 +=
3
-
-
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(
13,
17):
-
y =
30 * i
-
for j
in range(
2):
-
x =
30 * j
-
square.goto(x, -y +
280)
-
square.stamp()
-
square.goto(-x, -y +
280)
-
square.stamp()
效果:
方法二:
-
import turtle
-
-
-
# 定义圣诞树的绿叶函数
-
def tree(d, s):
-
if d <=
0:
-
return
-
turtle.forward(s)
-
tree(d -
1, s *
.8)
-
turtle.right(
120)
-
tree(d -
3, s *
.5)
-
turtle.right(
120)
-
tree(d -
3, s *
.5)
-
turtle.right(
120)
-
turtle.backward(s)
-
-
-
n =
100
-
""" 设置绘图速度
-
'fastest' : 0
-
'fast' : 10
-
'normal' : 6
-
'slow' : 3
-
'slowest' : 1
-
"""
-
turtle.speed(
'fastest')
# 设置速度
-
-
turtle.left(
90)
-
turtle.forward(
3 * n)
-
turtle.color(
"orange",
"yellow")
-
turtle.left(
126)
-
-
-
# turtle.begin_fill()
-
for i
in range(
5):
-
turtle.forward(n /
5)
-
turtle.right(
144)
-
turtle.forward(n /
5)
-
turtle.left(
72)
-
turtle.end_fill()
-
turtle.right(
126)
-
turtle.color(
"dark green")
-
turtle.backward(n *
4.8)
-
-
# 执行函数
-
tree(
15, n)
-
turtle.backward(n /
5)
效果:
转载:https://blog.csdn.net/bigzql/article/details/110124594
查看评论