[R] shapes in rgl

Greg Snow Greg.Snow at intermountainmail.org
Tue May 23 21:06:25 CEST 2006


Try this function (and modify it to your hearts content):

rgl.cones <- function(x,y,z,h=1,r=0.25, n=36, ...){

  r <- rep(r, length.out=length(x))
  h <- rep(h, length.out=length(x))

  step <- 2*pi/n
    for (i in seq(along=x)){
      for (j in seq(0, 2*pi-step, length=n)){
        tmp.x <- x[i] + c(0, cos(j)*r[i], cos(j+step)*r[i])
        tmp.z <- z[i] + c(0, sin(j)*r[i], sin(j+step)*r[i])
        tmp.y <- y[i] + h[i]/2*c(1,-1,-1)

        rgl.triangles(tmp.x,tmp.y,tmp.z,...)
      }
    }
} 

Hope this helps,

-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at intermountainmail.org
(801) 408-8111
 

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Duncan Golicher
Sent: Tuesday, May 23, 2006 12:29 PM
To: r-help at stat.math.ethz.ch
Subject: [R] shapes in rgl

Does anyone have a way of producing solid shapes other than spheres in rgl? I am using rgl to produce a simple visualisation of a forest model results using "lollipops". Its just a bit of fun, but as many of the trees are pines I would like to depict their crowns as cones. If there is a solution I need it to work under windows.
Here is the example.

library(rgl)
library(misc3d)

Trees3d<-function(x,y,z,rad,cols="lightgreen"){
  rgl.bg(color="white")
  rgl.spheres(x,(z-rad),-y,rad,col=cols,alpha=1)
  x<-rep(x,each=3)
  y<-rep(y,each=3)
  z<-rep(z-rad*2,each=3)
  a<-seq(3,length(x),by=3)
  y[a]<-NA
  x[a]<-NA
  z[a]<-NA
  a<-seq(1,length(x),by=3)
  z[a]<-0
  lines3d(x,y,z,col="brown",size=5,add=T)
  rgl.bbox(color="black", emission="lightgreen", specular="#3333FF", shininess=5, alpha=0.8 ) }

x<-runif(100,0,100)
y<-runif(100,0,100)
z<-runif(100,10,30)
rad<-z/5

Trees3d(x,y,z,rad)

Thanks,

Duncan Golicher

--
Dr Duncan Golicher
Ecologia y Sistematica Terrestre
Conservación de la Biodiversidad
El Colegio de la Frontera Sur
San Cristobal de Las Casas,
Chiapas, Mexico

Email: dgoliche at sclc.ecosur.mx 

Tel: 967 674 9000 ext 1310
Fax: 967 678 2322
Celular: 044 9671041021

United Kingdom Skypein; 020 7870 6251
Skype name: duncangolicher
Download Skype from http://www.skype.com

______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html



More information about the R-help mailing list