- エッジ(辺)を複雑な折れ曲がり曲線(辺の連結)に置き換えるルールによる図形描図ルール
- ドラゴン曲線、シェルピンスキ バスケット
- Figure 1.10
d<-1
replacer<-as.list(rep(c(0),5))
replacer[[1]]<-c(1)
replacer[[2]]<-c(2)
replacer[[3]]<-c(3)
replacer[[4]]<-c(4)
replacer[[5]]<-c(5)
par(mfcol=c(1,2))
D<-pi/2
x<-c(1)
replacer[[1]]<-c(1,4,2,4)
replacer[[2]]<-c(5,1,5,2)
Niter<-10
X<-MakeSequence(x,Niter,replacer)
resTurtle<-ResultTurtle(X[[Niter+1]],d,D,ds=c(1,1,1,0,0),Ds=c(0,0,0,1,-1),Ls=c(1,1,0,1,1))
DrawTurtle(resTurtle)
D<-pi/3
x<-c(2)
replacer[[1]]<-c(2,4,1,4,2)
replacer[[2]]<-c(1,5,2,5,1)
Niter<-6
X<-MakeSequence(x,Niter,replacer)
resTurtle<-ResultTurtle(X[[Niter+1]],d,D,ds=c(1,1,1,0,0),Ds=c(0,0,0,1,-1),Ls=c(1,1,0,1,1))
DrawTurtle(resTurtle)
par(mfcol=c(1,1))
- さらなる例
- hexagonal Gosper curveとquadratic Gosper curve
par(mfcol=c(1,2))
D<-pi/3
x<-c(1)
replacer[[1]]<-c(1,4,2,4,4,2,5,1,5,5,1,1,5,2,4)
replacer[[2]]<-c(5,1,4,2,2,4,4,2,4,1,5,5,1,5,2)
Niter<-4
X<-MakeSequence(x,Niter,replacer)
resTurtle<-ResultTurtle(X[[Niter+1]],d,D,ds=c(1,1,1,0,0),Ds=c(0,0,0,1,-1),Ls=c(1,1,0,1,1))
DrawTurtle(resTurtle)
D<-pi/2
x<-c(5,2)
replacer[[1]]<-c(1,1,5,2,5,2,4,1,4,1,5,2,5,2,1,4,2,4,1,1,2,5,1,4,2,4,1,1,4,2,5,1,2,5,2,5,1,4,1,4,2,2,5)
replacer[[2]]<-c(4,1,1,5,2,5,2,4,1,4,1,2,4,1,5,2,2,5,1,5,2,4,1,2,2,5,1,5,2,1,4,1,4,2,5,2,5,1,4,1,4,2,2)
Niter<-2
X<-MakeSequence(x,Niter,replacer)
resTurtle<-ResultTurtle(X[[Niter+1]],d,D,ds=c(1,1,1,0,0),Ds=c(0,0,0,1,-1),Ls=c(1,1,0,1,1))
DrawTurtle(resTurtle)
par(mfcol=c(1,1))
par(mfcol=c(1,2))
D<-pi/3
x<-c(1)
replacer[[1]]<-c(1,4,2,4,4,2,5,1,5,5,1,1,5,2,4)
replacer[[2]]<-c(5,1,4,2,2,4,4,2,4,1,5,5,1,5,2)
Niter<-4
X<-MakeSequence(x,Niter,replacer)
resTurtle<-ResultTurtle(X[[Niter+1]],d,D,ds=c(1,1,1,0,0),Ds=c(0,0,0,1,-1),Ls=c(1,1,0,1,1))
DrawTurtle(resTurtle,col=TRUE)
D<-pi/2
x<-c(5,2)
replacer[[1]]<-c(1,1,5,2,5,2,4,1,4,1,5,2,5,2,1,4,2,4,1,1,2,5,1,4,2,4,1,1,4,2,5,1,2,5,2,5,1,4,1,4,2,2,5)
replacer[[2]]<-c(4,1,1,5,2,5,2,4,1,4,1,2,4,1,5,2,2,5,1,5,2,4,1,2,2,5,1,5,2,1,4,1,4,2,5,2,5,1,4,1,4,2,2)
Niter<-2
X<-MakeSequence(x,Niter,replacer)
resTurtle<-ResultTurtle(X[[Niter+1]],d,D,ds=c(1,1,1,0,0),Ds=c(0,0,0,1,-1),Ls=c(1,1,0,1,1))
DrawTurtle(resTurtle,col=TRUE)
par(mfcol=c(1,1))