[R-es] rgl movimiento

Oscar Perpiñan Lamigueiro oscar.perpinan en upm.es
Jue Jul 7 09:40:54 CEST 2011


Hola Alberto,

No estoy seguro de que sea exactamente lo que buscas, pero quizás te
sirva el ejemplo que viene en help(rgl.viewpoint):

library(rgl)
# animated round trip tour for 10 seconds
     
     rgl.open()
     shade3d(oh3d(), color="red")
     
     start <- proc.time()[3]
     while ((i <- 36*(proc.time()[3]-start)) < 360) {
       rgl.viewpoint(i,i/4); 
     }

Saludos.

Oscar.
-------------------
Oscar Perpiñán Lamigueiro
Dpto. Ingeniería Eléctrica
EUITI-UPM

http://procomun.wordpress.com

-----------------------------------------
>Hola a todos:
>
>Estoy intentando visualizar unos resultados de un programa en R de
>forma dinámica. Dichos resultados se pueden representar, básicamente,
>con un plano que gira sobre uno de sus ejes: para dar sensación de
>movimiento he utilizado la función rgl.clear(), ya que no encuentro
>los equivalentes en rgl de los parámetros add o new. El problema es
>que al limpiar la pantalla con rgl.clear la imagen aparece
>"*flasheada*". Un ejemplo de lo que digo se puede ver, ejecutando:
>
>ang <- pi/180
>cont <- 1
>while(cont < 360) {
>    # Vertices del cuadrado original
>    if(cont == 1) {
>        v <- matrix(NA,4,3)
>        v[,1] <- c(0,0,1,1)
>        v[,2] <- c(0,0,0,0)
>        v[,3] <- c(0,1,1,0)
>        # Cuadrado Original
>              quads3d(v[,1],v[,2],v[,3],col="green")
>        }
>    # Rotacion
>    v[1,] <- rotate3d(v[1,], ang, 0, 1, 0)
>    v[2,] <- rotate3d(v[2,], ang, 0, 1, 0)
>    v[3,] <- rotate3d(v[3,], ang, 0, 1, 0)
>    v[4,] <-  rotate3d(v[4,], ang, 0, 1, 0)
>    # Pausa
>    Sys.sleep(0.3)
>    # Limpiar
>    if(rgl.cur() !=0) rgl.clear()
>      # Nuevo cuadrado
>    quads3d(v[,1],v[,2],v[,3],col="green")
>    #
>    cont <- cont + 1
>    }
>
>¿Hay alguna forma de dar movimiento a una figura con rgl sin que
>aparezcan esos flashes?
>
>Muchas gracias por adelantado.
>
>Un saludo,
>Alberto Soria.
>
>	[[alternative HTML version deleted]]
>



Más información sobre la lista de distribución R-help-es