"Arte gráfico" con R
El otro día dí con un blog dedicado al arte matemático y en particular con esta entrada sobre cómo crear figuras mediante rotación de segmentos:
El código (en matlab) estaba disponible y lo traduje a R:
graphic.art <- function( foo, n = 200, init = -1, end = 1, breaks = 20 ){
x <- seq( init, end, by = 1 / breaks )
base <- matrix( c( x, foo( x ) ), ncol = 2 )
rotate <- function(a,m) m %*% matrix(c(cos(a), -sin(a), sin(a), cos(a)), 2)
my.lines <- sapply( 2 * pi * ( 1:n ) / n, rotate, base, simplify = F )
limits <- data.frame(do.call(rbind, my.lines))
limits <- data.frame(lapply(limits, range))
plot(limits, type = "n")
lapply(my.lines, function(x) lines(x, col = sample(colours(), 1)))
}
Unos querrán probar diversas opciones:
graphic.art(sin)
graphic.art(exp)
graphic.art(tan)
A otros tal vez les interese comparar el código en R con el original en matlab para evalar pros y contras.