- 移動の評価から準結晶に戻ってきた
- 昨日もcut ' projectで…ということを書いたが、やはり、cut & projectやそれと黄金比の関係をRレベルでハンドリングできないと…ということでやってみる
- 参考サイト,参考サイト2
- まずは、1次元フィボナッチ格子を2次元正方格子における傾き=黄金比でのcut & projectでやってみる
- 傾き=黄金比の帯を描くことと、その傾き分の回転をしてその上で水平な帯を引くことは同じだが、そんなことをRで。
- 回転前の帯



x <- (-10):10
xy <- expand.grid(x,x)
golden.ratio <- (1+sqrt(5))/2
s <- which(abs(golden.ratio*xy[,1]-xy[,2])<0.5)
my.col <- rep(1,length(xy[,1]))
my.col[s] <- 2
plot(xy,pch=20,col=my.col)
abline(0,golden.ratio,col=2)
abline(0.5,golden.ratio,col=3)
abline(-0.5,golden.ratio,col=3)
theta <- atan(golden.ratio)
rot <- matrix(c(cos(theta),-sin(theta),sin(theta),cos(theta)),2,2)
xy.rot <- t(rot %*% t(xy))
plot(xy.rot,pch=20,col=my.col)
abline(h=c(0.5,-0.5),col=3)
plot(xy.rot[s,1],pch=20)

t <- 0:3
X <- cbind(cos(t/6*pi),sin(t/6*pi),cos(5*t/6*pi),sin(5*t/6*pi))
plot(X[,1:2])
x <- (-10):10
xy <- as.matrix(expand.grid(rep(list(x),4)))
z <- xy %*% X
ss <- which(sqrt(apply(z[,3:4]^2,1,sum))<0.5)
z.ss <- z[ss,]
xy.ss <- xy[ss,]
ed <- matrix(0,length(xy.ss[,1]),length(xy.ss[,1]))
for(i in 1:(length(ed[,1])-1)){
for(j in (i+1):length(ed[,1])){
if(max(abs(xy.ss[i,]-xy.ss[j,]))<2){
ed[i,j] <- 1
}
}
}
s <- which(ed == 1,arr.ind=TRUE)
plot(z.ss[,1:2],pch=20,cex=0.2)
segments(z.ss[s[,1],1],z.ss[s[,1],2],z.ss[s[,2],1],z.ss[s[,2],2])