Python 提供 turtle 繪圖功能來建立影像。
import turtle turtle.forward(50) turtle.left(120) turtle.forward(50) turtle.left(120) turtle.forward(50) turtle.penup() turtle.forward(50) turtle.pendown() turtle.forward(50) turtle.left(120) turtle.forward(50) turtle.left(120) turtle.forward(50) turtle.right(120) turtle.penup() turtle.forward(100) turtle.right(60) turtle.pendown() turtle.forward(50) turtle.right(120) turtle.forward(50) turtle.right(120) turtle.forward(50)想像在烏龜尾巴綁一枝筆,然後可以控制烏龜前進(forward)、後退(back)、右轉(right)、左轉(left)、抬起尾巴(penup,不會劃線)、放下尾巴(pendown,劃線)、、、等許多動作。
Koch 曲線
畢業三百年後又遇到您了,有興趣的可以先看這裡!def draw(t, length, loop):
leng = length / 3;
if loop == 0:
return
elif loop == 1:
dr(t, length)
return
if loop == 2:
dr(t, leng)
else:
draw(t, leng, loop-1)
t.left(angle)
if loop == 2:
dr(t, leng)
else:
draw(t, leng, loop-1)
t.right(angle * 2)
if loop == 2:
dr(t, leng)
else:
draw(t, leng, loop-1)
t.left(angle)
if loop == 2:
dr(t, leng)
else:
draw(t, leng, loop-1)
def dr(t, length):
t.forward(length)
t.left(angle)
t.forward(length)
t.right(angle * 2)
t.forward(length)
t.left(angle)
t.forward(length)
import turtle
turtle.penup()
turtle.back(300)
turtle.pendown()
angle = 60
draw(turtle, length = 200, loop = 3)
簡單幾行程式就可以產生漂亮又複雜的圖案,碎形(fractal)真的是遞迴 Recursive 的極致。
angle=60, loop=1
angle=60, loop=2
angle=60, loop=3
angle=60, loop=4
angle=75, loop=3
雪花
import turtle turtle.penup() turtle.back(300) turtle.left(90) turtle.forward(200) turtle.right(90) turtle.pendown() angle = 60 draw(turtle, length = 120, loop = 3) turtle.right(120) draw(turtle, length = 120, loop = 3) turtle.right(120) draw(turtle, length = 120, loop = 3)---
---
---







沒有留言:
張貼留言