裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

Julia に翻訳--226 ドラゴンカーブ

2021年05月13日 | ブログラミング

#==========
Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。
以下のプログラムを Julia に翻訳してみる。

奥村先生のページ
ドラゴンカーブを描く
https://oku.edu.mie-u.ac.jp/~okumura/python/dragoncurve.html

ファイル名: dragon.jl  関数名: maindragon

翻訳するときに書いたメモ

関数内の関数にすることで,global 宣言しなくてもよいことになる
ついでに,関数の引数で描画パラメータを関数の引数で与える

==========#

using Plots

function maindragon(i=10, dx=200, dy=0, sign=1)
    function dragon(i, dx, dy, sign)
        if i == 0
            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)
        end
    end

    pyplot(grid=false, showaxis=false, color=:black, ticks=false,
    aspect_ratio=1, label=false)
    x = y = 0
    plt = plot()
    dragon(i, dx, dy, sign)
    savefig("dragoncurve.png")
end

maindragon() # 10, 200, 0, 1
maindragon(12)

コメント    この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Julia に翻訳--225 主成分回帰 | トップ | Julia の小ネタ--024 QR 分解 »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事