準結晶を描く

library(geometry)
a1 <- a2 <- a3 <- a4 <- -10:10
aaaa <- expand.grid(a1,a2,a3,a4)
t1 <- (1+sqrt(5))/2
t2 <- (1-sqrt(5))/2
u <- c(cos(0),sin(0))
v <- c(cos(4*pi/5),sin(4*pi/5))
u. <- c(cos(0),sin(0))
v. <- c(cos(2*pi/5),sin(2*pi/5))

x <- cbind((aaaa[,1]+t1*aaaa[,2])*u[1] + (aaaa[,3]+t1*aaaa[,4])*v[1],(aaaa[,1]+t1*aaaa[,2])*u[2] + (aaaa[,3]+t1*aaaa[,4])*v[2])
y <- cbind((aaaa[,1]+t2*aaaa[,2])*u.[1] + (aaaa[,3]+t2*aaaa[,4])*v.[1],(aaaa[,1]+t2*aaaa[,2])*u.[2] + (aaaa[,3]+t2*aaaa[,4])*v.[2])

s <- which(apply(y^2,1,sum)<1)
plot(x[s,],pch=20,cex=1,xlim=c(-15,15),ylim=c(-15,15))
x<- x[s,]
d.x <- delaunayn(x)
plot(x,pch=20,cex=1,xlim=c(-15,15),ylim=c(-15,15))
d.x.2 <- rbind(d.x[,1:2],d.x[,2:3],d.x[,c(3,1)])
segments(x[d.x.2[,1],1],x[d.x.2[,1],2],x[d.x.2[,2],1],x[d.x.2[,2],2])