巴恩斯利蕨 The Barnsley Fern

巴恩斯利蕨学习链接
下面用R画一下:

npts<-50000
point_mat<-matrix(data=NA,nrow=npts,ncol=2)
list_fun<-list(
    f1=function(x,y){c(0., 0.16*y)}  # R里的匿名函数
    f2=function(x,y){c(0.85*x + 0.04*y, -0.04*x + 0.85*y + 1.6)},
    f3=function(x,y){c(0.2*x - 0.26*y, 0.23*x + 0.22*y + 1.6)},
    f4=function(x,y){c(-0.15*x + 0.28*y, 0.26*x + 0.24*y + 0.44)}
)

x<-0;y<-0
for (i in 1:npts) {
   point_mat[i,]<-c(x,y)
   random<-sample(list_fun,size=1,replace=TRUE,
                  prob=c(0.01, 0.85, 0.07, 0.07))[[1]]
   vec<-random(x,y)
   x<-vec[1];y<-vec[2]
}
# 画图
plot(point_mat[,1],point_mat[,2],
     type='p',pch=19,col='#008000',cex=0.1,
     xlab='',ylab='')

图形如下:

posted on 2021-01-17 11:57  纵横二剑  阅读(469)  评论(0编辑  收藏  举报