事前準備
本記事はProcessingを使って,フラクタルの画像を生成しています.なので,Processingのインストールが済んでいない方はインストールを行なってください.
Processingのインストールの手順について記事を書いたのでよければそちらからどうぞ.
フラクタルツリーを描いてみよう
以下のソースコードをProcessingで実行してみてください.
def setup():
size(600, 600) #ディスプレイウィンドウのサイズを指定
def draw():
background(255) #背景色(255は白)
translate(300, 500)
level = int(map(mouseX, 0, width, 0, 15)) #枝分かれのレベル
y(100, level)
def y(sz,level):
if level > 0:
line(0, 0, 0, -sz)
translate(0, -sz)
angle = map(mouseY, 0, height, 0, 180) #枝分かれの角度
rotate(radians(angle))
y(0.8 * sz, level - 1)
rotate(radians(-2 * angle))
y(0.8 * sz, level - 1)
rotate(radians(angle))
translate(0, sz)
マウスを上下左右に動かすことによって,ツリーの形が変化すると思います.
詳しい解説
translate 関数 : ディスプレイウィンドウの中心座標を変える
例 : translate(30,20)
で$x$軸方向に30,$y$軸方向に20移動します.
rotate 関数 : ディスプレイウィンドウを回転させる
例 : rotate(radians(30))
で30°回転します.角度はrotate(PI/6)
などと弧度法で指定することもできます.
line 関数 : 直線を引く
例 : line(20, 30, 80, 70)
で点(20,30)
と点(80,70)
を結ぶ直線を描くことができます.