Turtleでシェルピンスキーのアローヘッド曲線を描画

Python

シェルピンスキーのアローヘッド曲線(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()

コメント

タイトルとURLをコピーしました