フィボナッチ格子
# Nは乱点の数を決める引数 # f1 は黄金比の値をデフォルトとする値。この値を黄金比から変えると格子としての良い性格がなくなる # k=1をデフォルトとし、フィボナッチ格子を描くためにはk=1。ただし、その背景にあるらせんを描くためにはこの値をいじって、らせん上の点の数を増やす必要がある fib.lattice.S2 <-function(N,f1=(sqrt(5)+1)/2,k=1){ f2 <- f1-1 # 黄金比はx^2-x-1=0の1つの根。もう1つの根を取り出す P <- 2*N+1 i <- seq(from=-N, to=N,by=k) theta <- asin(2*i/(2*N+1)) phi <- 2*pi*i*f2 x <- cos(theta)*cos(phi) y <- cos(theta)*sin(phi) z <- sin(theta) return(cbind(x,y,z)) } # フィボナッチ格子点の座標 N <- 20 fl <- fib.lattice.S2(N) library(rgl) # らせんの座標 N2 <- N fl2 <- fib.lattice.S2(N2,k=0.01) # らせんを描いて plot3d(rbind(fl2)) # フィボナッチ格子を重ね描き points3d(fl,size=10) rgl.snapshot("fib.png")