[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