title: "Rpolyhedra" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Rpolyhedra} %\VignetteEngine{knitr::rmarkdown} \usepackage[utf8]{inputenc}

This package is a curation made based on the poly package found on http://www.netlib.org/polyhedra/ (Original Help message), and the polyhedra database found on http://dmccooey.com/polyhedra, both of which provide polyhedra databases on its own format. As such, Rpolyhedra provides with the following:

- A module to scrape the polyhedra for the different sources found with features for incremental correction of issues found and to be found in scraping process.
- A database of the scraped polyhedra.
- An R6 polyhedron representation with 'rgl' package visualizing capabilites.

For final users, the package provides a common interface for accesing public polyhedra databases, analize properties, compare and visualize them with RGL.

For advanced users, the package provides a simplified set of R6 objects to scrape and compare polyhedra databases.

library(rgl) library(Rpolyhedra) setupKnitr()

Once the original files had been processed, a simple call to `getAvailablePolyhedra()`

retrieves a list of the available polyhedra with properties and status in the polyhedra database:

#show only the first 10 polyhedra. head(getAvailablePolyhedra(), n = 10)

The access to a particular polyhedron can be done with a call to `getPolyhedron(<<source>>, <<polyhedron.name>>)`

, which returns a Polyhedron object. For example, to retrieve a cube from the netlib database, the call would be:

cube <- getPolyhedron(source = "netlib", polyhedron.name = "cube")

To try package funcionality, a simple demo can be executed which shows the 5 regular polyhedra.

polyhedra.2.draw <- getAvailablePolyhedra(source = "netlib") polyhedra.2.draw <- polyhedra.2.draw[polyhedra.2.draw$scraped.name %in% c("tetrahedron", "octahedron", "cube", "icosahedron", "dodecahedron"),] n <- nrow(polyhedra.2.draw) polyhedron.colors <- rainbow(n) polyhedron.scale <- 5 open3d() par3d(FOV = 1) rgl.bg( sphere =FALSE, fogtype = "none", color=c("black")) rgl.viewpoint(theta = 0,phi=0,zoom=0.8,fov=1) for (i in seq_len(n)) { polyhedron.row <- polyhedra.2.draw[i,] polyhedron.name <- polyhedron.row$scraped.name polyhedron <- getPolyhedron(source = polyhedron.row$source, polyhedron.name) current.angle <- i/n * 2 * pi tm <- rotationMatrix(current.angle, 1,0,0) x.pos <- round(polyhedron.scale * sin(current.angle), 2) y.pos <- round(polyhedron.scale * cos(current.angle), 2) tm <- tm %*% translationMatrix(x.pos,y.pos,0) print(paste("Drawing ",polyhedron.name," rotated ", round(current.angle,2), " in (1,0,0) axis. Translated to (",x.pos,",",y.pos,",0)", " with color ",polyhedron.colors[i], sep = "")) shape.rgl <- polyhedron$getRGLModel(transformation.matrix = tm) shade3d(shape.rgl, color = polyhedron.colors[i]) }

**Any scripts or data that you put into this service are public.**

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.