一、繪制五角星
- 引入turtle庫
'''
作者:蘭蘭蘭
功能:五角星繪制
版本:1.0
日期:02/09/2018
'''
import turtle
def main ():
'''
主函數
'''
i = 1
while i <= 5:
turtle.forward(50)
turtle.right(144)
i = i+1
turtle.exitonclick()
if __name__ == "__main__":
main()
- Turtle庫函數
Turtle.forward(x) 向前划x
Turtle.backward(x)
Turtle.right(x) 向右轉x°
Turtle.left(x)
Turtle.exitonclick() 點擊關閉畫布
Turtle.penup() 抬起畫筆
Turtle.pendown() 放下畫筆
Turtle.pencolor(‘s’) 畫筆顏色,參數為字符串
二、重復繪制不同大小的五角星(遞歸函數)
- 使用迭代函數
'''
作者:蘭蘭蘭
功能:五角星繪制
版本:2.0
日期:02/10/2018
2.0新增功能:用迭代函數繪制重復不同大小的五角星
'''
import turtle
def draw_pentagon_pentagram(size):
# 繪制五角星
# 計數器
i = 1
while i <= 5:
turtle.forward(size)
turtle.right(144)
i = i + 1
if size <= 200:
size += 20
draw_pentagon_pentagram(size)
def main ():
'''
主函數
'''
turtle.penup()
turtle.backward(100)
turtle.pendown()
turtle.pensize(1.5)
turtle.pencolor('yellow')
size = 50
#繪制五角星
draw_pentagon_pentagram(size)
turtle.exitonclick()
if __name__ == "__main__":
main()
- 遞歸函數
在函數中調用本身的方式,達到終止條件,各層逐層結束運算
三、分形樹的繪制
- 使用遞歸函數繪制分形樹
'''
作者:蘭蘭蘭
功能:利用遞歸函數分形樹繪制
版本:1.0
日期:02/11/2018
'''
import turtle
def draw_branch(branch_length):
'''
繪制分形樹
'''
if branch_length >=5:
# 設置樹梢為綠色,樹干為棕色
if (branch_length-15) <= 5:
turtle.pencolor('green')
else:
turtle.pencolor('brown')
#繪制右側樹枝
turtle.pendown()
turtle.forward(branch_length)
print('向前',branch_length)
turtle.right(20)
print('向右轉20度')
draw_branch(branch_length-15)
#繪制左側樹枝
turtle.left(40)
print('向左轉40度')
draw_branch(branch_length-15)
#返回之前的樹枝
turtle.penup()
turtle.rt(20)
print('向右轉20度')
turtle.backward(branch_length)
print('向后',branch_length)
def main():
'''
主函數
'''
#畫筆粗細
turtle.pensize(2)
#初始位置
turtle.left(90)
turtle.penup()
turtle.backward(100)
turtle.pendown()
#調用函數繪制分形樹
draw_branch(100)
turtle.exitonclick()
if __name__ == '__main__':
main()