[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