## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  fig.height = 6, fig.width = 7,
  collapse = TRUE,
  comment = "#>"
)

## -----------------------------------------------------------------------------
library(prinsurf)
library(rgl)

## -----------------------------------------------------------------------------
data2 <- function(n,side)
{
  e1 <- runif(n,0,0.5)
  x <- 2*runif(n) - 1
  theta <- 2*pi*runif(n) - pi
  y <- sin(theta)*sqrt(1-x^3)
  z <- sin(theta)*sqrt(x^2)
  X = matrix(c(x+e1,y+e1,z+e1),nrow=n,ncol=3,byrow=F)
  return(X)
}
X <-  data2(100,1)
points3d(X,col="blue")

## ----echo=FALSE---------------------------------------------------------------
my.plot <- scene3d()
rglwidget(my.plot)

## ----example------------------------------------------------------------------
surface <- principal.surface(X,max.iter = 5,print_iterations = TRUE)

## ----echo=FALSE---------------------------------------------------------------
my.plot <- scene3d()
rglwidget(my.plot)