Merry Christmas
[This article was first published on Wiekvoet, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Based on The DO loop, since I wanted a fractal Christmas tree and there is no point in inventing what has been made already. Besides, this is not the first time this year that I used R to do what has been done in SAS.Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Code
# http://blogs.sas.com/content/iml/2012/12/14/a-fractal-christmas-tree/# Each row is a 2×2 linear transformation
# Christmas tree
L <- matrix(
c(0.03, 0, 0 , 0.1,
0.85, 0.00, 0.00, 0.85,
0.8, 0.00, 0.00, 0.8,
0.2, -0.08, 0.15, 0.22,
-0.2, 0.08, 0.15, 0.22,
0.25, -0.1, 0.12, 0.25,
-0.2, 0.1, 0.12, 0.2),
nrow=4)
# … and each row is a translation vector
B <- matrix(
c(0, 0,
0, 1.5,
0, 1.5,
0, 0.85,
0, 0.85,
0, 0.3,
0, 0.4),
nrow=2)
prob = c(0.02, 0.6,.08, 0.07, 0.07, 0.07, 0.07)
# Iterate the discrete stochastic map
N = 1e5 #5 # number of iterations
x = matrix(NA,nrow=2,ncol=N)
x[,1] = c(0,2) # initial point
k <- sample(1:7,N,prob,replace=TRUE) # values 1-7
for (i in 2:N)
x[,i] = crossprod(matrix(L[,k[i]],nrow=2),x[,i-1]) + B[,k[i]] # iterate
# Plot the iteration history
png(‘card.png’)
par(bg=’darkblue’,mar=rep(0,4))
plot(x=x[1,],y=x[2,],
col=grep(‘green’,colors(),value=TRUE),
axes=FALSE,
cex=.1,
xlab=”,
ylab=” )#,pch=’.’)
bals <- sample(N,20)
points(x=x[1,bals],y=x[2,bals]-.1,
col=c(‘red’,’blue’,’yellow’,’orange’),
cex=2,
pch=19
)
text(x=-.7,y=8,
labels=’Merry’,
adj=c(.5,.5),
srt=45,
vfont=c(‘script’,’plain’),
cex=3,
col=’gold’
)
text(x=0.7,y=8,
labels=’Christmas’,
adj=c(.5,.5),
srt=-45,
vfont=c(‘script’,’plain’),
cex=3,
col=’gold’
)
To leave a comment for the author, please follow the link and comment on their blog: Wiekvoet.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.