[R-es] rgl movimiento

Oscar Perpiñan Lamigueiro oscar.perpinan en upm.es
Vie Jul 8 10:58:42 CEST 2011


Es verdad. Prueba a echarle un vistazo al código de la demo "flag". Es
un objeto que cambia de forma y textura según va girando. Quizás puedas
construir una función similar que cree/modifique objetos varios.

library(rgl)
demo(flag)

Saludos.

Oscar.

El Thu, 7 Jul 2011 09:55:40 +0200
Alberto Soria <alberto.soria en ari-solar.es> escribió:
> Gracias a los dos!
> 
> Creo que lo que hace viewpoint es cambiar el punto de vista de la
> camara, que da una sensación de movimiento muy buena, pero en el
> momento que se tengan planos que se mueven de forma diferentes es la
> misma pantalla ya no sirve...
> 
> Voy a echarlo un vistazo al paquete animation, a ver que tal.
> 
> Gracias de nuevo!
> 
> Un saludo,
> Alberto.
> 
> 
> 
> El 7 de julio de 2011 09:40, Oscar Perpiñan Lamigueiro <
> oscar.perpinan en upm.es> escribió:
> 
> > 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