SSブログ

ドラゴン曲線 [統計]

dragon.png

Rで描くフラクタル曲線。今回はドラゴン曲線。


source("turtle.R")

dragon <- function(turtle, level, length, left = TRUE) {
	if (level == 1) {
		forward(turtle, length)
	} else if (level > 1) {
		if (left) {
			left(turtle, 45)
			dragon(turtle, level - 1, length / sqrt(2), TRUE)
			right(turtle, 90)
			dragon(turtle, level - 1, length / sqrt(2), FALSE)
			left(turtle, 45)
		} else {
			right(turtle, 45)
			dragon(turtle, level - 1, length / sqrt(2), TRUE)
			left(turtle, 90)
			dragon(turtle, level - 1, length / sqrt(2), FALSE)
			right(turtle, 45)
		}
	} else {
		stop("level must be positive")
	}
}

t <- turtle.init()
set.location(t, c(-0.4, -0.1))
set.angle(t, 0)
set.color(t, "blue")
level <- 15
length <- 1.0
dragon(t, level, length, TRUE)

タグ:R library(grid)
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0