拙著『[改訂新版]C言語による標準アルゴリズム事典』 p.200 にあるドラゴンカーブを Python で描いてみましょう。
import matplotlib.pyplot as plt
def dragon(i, dx, dy, sign):
global x, y
if i == 0:
plt.plot([x, x+dx], [y, y+dy])
x += dx
y += dy
else:
dragon(i-1, (dx-sign*dy)/2, (dy+sign*dx)/2, 1)
dragon(i-1, (dx+sign*dy)/2, (dy-sign*dx)/2, -1)
x = y = 0
dragon(10, 200, 0, 1)
plt.axis('equal')
plt.axis('off')
plt.savefig('dragoncurve.svg', bbox_inches="tight")
色は勝手に付けてくれました。黒がよければ plt.plot(..., color='black')
としましょう。
Last modified: