# Qualche altro esempio di GEOMETRIA 3D:
z0 <- 0; u <- c(z0,z0,z0,z0); z <- array(u,dim=c(2,2))
x <- c(-2,2); y <- c(-2,2)
thphdi <- function(t,p,di) {
 F <- persp(x,y,z,theta=t,phi=p,scale=FALSE,zlim=c(z0,2),xlim=x,ylim=y,d=di)
  lines(trans3d(c(-1,-1,1,1,-1),c(-1,1,1,-1,-1),c(0,0,0,0,0),pmat=F))
  lines(trans3d(c(-1,-1),c(-1,-1),c(0,1),pmat=F))
  lines(trans3d(c(1,1),c(-1,-1),c(0,1),pmat=F))
  lines(trans3d(c(1,1),c(1,1),c(0,1),pmat=F))
  lines(trans3d(c(-1,-1),c(1,1),c(0,1),pmat=F))
  lines(trans3d(c(-1,-1),c(-1,1),c(1,1),pmat=F))
  lines(trans3d(c(1,1),c(-1,1),c(1,1),pmat=F))
  lines(trans3d(c(1,0),c(1,1),c(1,1.5),pmat=F))
  lines(trans3d(c(-1,0),c(1,1),c(1,1.5),pmat=F))
  lines(trans3d(c(-1,0),c(-1,-1),c(1,1.5),pmat=F))
  lines(trans3d(c(1,0),c(-1,-1),c(1,1.5),pmat=F))
  lines(trans3d(c(0,0),c(1,-1),c(1.5,1.5),pmat=F))
  lines(trans3d(c(0,0),c(1,-1),c(1.5,1.5),pmat=F))
  lines(trans3d(c(-0.5,-0.5),c(-1,-1),c(0,0.5),pmat=F))
  lines(trans3d(c(0.5,0.5),c(-1,-1),c(0,0.5),pmat=F))
  lines(trans3d(c(-0.5,0.5),c(-1,-1),c(0.5,0.5),pmat=F))
  lines(trans3d(c(1,1),c(-1,100000),c(0,0),pmat=F),col="red",lty=3)
  lines(trans3d(c(1,1),c(-1,100000),c(1,1),pmat=F),col="red",lty=3)
  lines(trans3d(c(-1,-1),c(-1,100000),c(1,1),pmat=F),col="red",lty=3)
  lines(trans3d(c(-1,-1),c(-1,100000),c(0,0),pmat=F),col="red",lty=3)
  lines(trans3d(c(0,0),c(-1,100000),c(1.5,1.5),pmat=F),col="red",lty=3)
 }
thphdi(-30,25,1/2)
# cambiamo punto di vista, alla stessa distanza
thphdi(-20,25,1/2)
# cambiamo punto di vista, alla stessa distanza
thphdi(-10,25,1/2)
# cambiamo punto di vista, alla stessa distanza
thphdi(0,25,1/2)
# cambiamo punto di vista, alla stessa distanza
thphdi(10,25,1/2)
# cambiamo punto di vista, alla stessa distanza
thphdi(10,13,1/2)
# cambiamo punto di vista, alla stessa distanza
thphdi(10,-30,1/2)
# cambiamo punto di vista, alla stessa distanza
thphdi(10,30,1/4)
# cambiamo distanza
thphdi(10,30,1)
# cambiamo distanza
thphdi(10,30,5)
# cambiamo distanza
thphdi(10,30,100)