Function Repository Resource:

RibbonPolyhedron

Source Notebook

Display the set of polygons obtained by extending polyhedron edges perpendicularly inward by a given distance

Contributed by: Eric Weisstein

ResourceFunction["RibbonPolyhedron"][poly,d]

shows the ribbon polyhedron obtained by extending edges of polyhedron poly by the distance d.

ResourceFunction["RibbonPolyhedron"][poly]

uses a default distance of 0.2.

Details and Options

A ribbon polyhedron is defined by the set of polygons obtained when polyhedron edges are extended perpendicularly inward by a fixed distance.

Examples

Basic Examples (1) 

"Ribbonize" the cube:

In[1]:=
ResourceFunction["RibbonPolyhedron"][Cube[]]
Out[1]=

Scope (3) 

RibbonPolyhedron works on polyhedron objects:

In[2]:=
ResourceFunction["RibbonPolyhedron"][
 Entity["Polyhedron", {"Antiprism", 5}]["Polyhedron"], .1]
Out[2]=

RibbonPolyhedron works on polyhedron constructors:

In[3]:=
ResourceFunction["RibbonPolyhedron"][Dodecahedron[], .1]
Out[3]=

Specifying the distance d changes the width of the "ribbons":

In[4]:=
Table[ResourceFunction["RibbonPolyhedron"][
  Entity["Polyhedron", "Icosidodecahedron"]["Polyhedron"], d], {d, 0, .2, .05}]
Out[4]=

Possible Issues (2) 

Large distances may create ribbons that lie outside the original polyhedron:

In[5]:=
ResourceFunction["RibbonPolyhedron"][Cube[], 2]
Out[5]=

For polyhedra with different face types, some ribbons may self-intersect while others do not:

In[6]:=
ResourceFunction["RibbonPolyhedron"][
 Entity["Polyhedron", "Icosidodecahedron"]["Polyhedron"], .4]
Out[6]=

Neat Examples (1) 

Explore the "ribbonization" of the icosidodecahedron:

In[7]:=
Manipulate[
 ResourceFunction["RibbonPolyhedron"][
  Entity["Polyhedron", "Icosidodecahedron"]["Polyhedron"], i], {i, 0, 2.5}]
Out[7]=

Version History

  • 1.0.0 – 28 April 2020

Related Resources

License Information