LoginSignup
0
0

【Python】再帰でフラクタルを描く①(フラクタルツリー)

Last updated at Posted at 2024-01-10

事前準備

本記事は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)

スクリーンショット 2024-01-10 20.01.20.png

マウスを上下左右に動かすことによって,ツリーの形が変化すると思います.

詳しい解説

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)を結ぶ直線を描くことができます.

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0