[This article was first published on Probability and statistics blog » r, 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.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
A couple days ago I noticed a fun piece of R code by Allan Roberts, which lets you create a digital snowflake by cutting out virtual triangles. Go give it a try. Roberts inspired me to create a whole night sky of snowflakes. I tried to make the snowfall look as organic as possible. There are lots of options to adjust. Here’s the code, have fun and Happy Holidays!
# Code by Matt Asher for statisticsblog.com # Feel free to modify and redistribute # How many flakes do you want to fall? flakes = 100 # Width and height of your space width = 800 height = 600 # Initial wind wind = 0 # Setup the background of the plot and margins par(bg = "black") par(oma=c(0,0,0,0)) par(mar=c(0,0,0,0)) plot(0, 0, col="black", pch=".", xlim=c(0,width), ylim=c(0,height), axes=F) for(i in 1:flakes) { startY = height startX = runif(1,1,width) xPos = startX yPos = startY for(j in 1:height) { # Optional drift in wind wind = wind + rcauchy(1,0,.05) # Update snowflake position xPos = xPos + rnorm(1,.1,1.5) yPos = yPos - runif(1,4,20) # Are we in the space, if so display it if(xPos > 0 && xPos <= width && yPos > 0 && yPos <= height) { points(round(xPos), round(yPos), col="white", pch=8) # System dely, slows down the flakes Sys.sleep(0.1) } } }
To leave a comment for the author, please follow the link and comment on their blog: Probability and statistics blog » r.
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.