シェルピンスキーのアローヘッド曲線(Sierpiński arrowhead curve)というものがあります。フラクタルの一つです。
これをPythonのTurtleで描画してみます。
図形
深さ0
深さ1
深さ2
深さ3
深さ4
深さ8
コード
from turtle import *
def sierpinski(length, depth, sign):
if depth == 0:
forward(length)
else:
flag = (-1) ** depth
left(60 * sign * flag)
sierpinski(length / 2, depth - 1, sign)
right(60 * sign * flag)
sierpinski(length / 2, depth - 1, -sign)
right(60 * sign * flag)
sierpinski(length / 2, depth - 1, sign)
left(60 * sign * flag)
depth = 4
sign = (-1) ** depth
length = 450
speed(0)
# hideturtle()
sierpinski(length, depth, sign)
done()
def sierpinski(length, depth, sign):
if depth == 0:
forward(length)
else:
flag = (-1) ** depth
left(60 * sign * flag)
sierpinski(length / 2, depth - 1, sign)
right(60 * sign * flag)
sierpinski(length / 2, depth - 1, -sign)
right(60 * sign * flag)
sierpinski(length / 2, depth - 1, sign)
left(60 * sign * flag)
depth = 4
sign = (-1) ** depth
length = 450
speed(0)
# hideturtle()
sierpinski(length, depth, sign)
done()
コメント