Penrose Tiles

Implementation

Needs["PenroseTiles`"]

Shapes

The basic Kite and Dart shapes

GraphicsRow[{PenroseGraphics[Kite],PenroseGraphics[Dart]}]

The seven possible vertex configurations:

GraphicsRow[Table[PenroseGraphics[PRotate[shape,Pi/2]],{shape,{Sun,Star, Ace,Deuce,King, Queen, Jack}}]]

Use PRotate and PTranslate to build more complicated shapes.

PenroseGraphics[Join[PRotate[Sun,Pi/5],PTranslate[PRotate[Star,Pi/5],{GoldenRatio,0}]]]

Internally we represent a tiling by a list of triangles of the form a[x,y,z], and o[x,y,z] respectively.  In each case x,y, and z, are planar coordinates of the form {r1,r2}, machine-precision real numbers.

Ace

GraphicsRow[{PenroseGraphics[AcuteTriangle],PenroseGraphics[ObtuseTriangle]}]

Note that in each case only two edges of the triangle are drawn.  This convention makes pairs of triangles form tiles.

The Deflation Operator

Deflation and inflation are operators on legal tilings.  The deflation operator applied to a finite collection of tiles, leads to a more refined collection.  However, as usually defined, the operators do not respect tile boundaries.  The operators do, however, respect half tiles.  This fact is the reason for defining tilings in terms of triangles rather than tiles.

The "deflation" operator takes an acute triangle to the union of two acute triangles and one obtuse.

PenroseGraphics[Deflate[AcuteTriangle]]

The obtuse triangle goes to an acute and an obtuse.

PenroseGraphics[Deflate[ObtuseTriangle]]

Table[PenroseGraphics[Deflate[Sun,n]],{n,0,3}]

Style options

{PenroseGraphics[Jack,Markings->False],
PenroseGraphics[Jack,Edges->False],
PenroseGraphics[Jack,Faces->False]}

PenroseGraphics[Jack,
EdgeStyle->{Thick,Red},
MarkingStyle->{Magenta,{Thickness[.03],Green}},
KiteColor->White,
DartColor->Yellow
]

{PenroseMarkingsGraphics[Jack,MarkingStyle->{{Thick,Red},{Thickness[.02],Brown}}],PenroseEdgeGraphics[Jack,EdgeStyle->{Thick,Purple,Dotted}],
PenroseFaceGraphics[Jack,KiteColor->Pink,DartColor->Gray]}

Credits

By Bryan Clair, 2011 based on a 1994 package by Lyman P. Hurd, loosely based on a 1988 package by William Thurston.