分享給大家一篇文章,教你怎樣用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://www.uj5u.com/houduan/240152.html
標籤:python
