Steffen's flexible polyhedron A preprint version of a “Mathematical graphics” column from Mathematica in Education and Research . Mark McClure Department of Mathematics University of North Carolina at Asheville Asheville, NC 28804 [email protected] Abstract

ü Initialization

1. Introduction A closed spatial figure allows no changes as long as it is not ripped apart. Leonard Euler, as quoted in [1], page 241. Euler's above sentiment expresses a long-standing, unquestioned, and perhaps natural belief that all polyhedra are rigid. Even if constructed with hinged edges Euler states, a polyhedron will not bend or flex without distorting the faces. The statement is true of convex polyhedra. In fact, Cauchy proved the stronger statement that any two combinatorially equivalent convex polyhedra with congruent faces are themselves congruent. (For an elementary proof of Cauchy's theorem, as well as a nice introduction to this topic, see chapter 6 of [1].) However, there are non-convex polyhedra which do in fact flex. In this issue's column, we construct a model of the simplest such flexible polyhedron discovered by Klaus Steffen. Although Steffen does not seem to have published this result, it has become well known and often cited in the literature of rigidity of structures. In addition to construction of the model, we investigate the range of genuine non-intersecting flexibility.

2. The construction Our construction is based on the following net which describes how to make a model of the polyhedron out of paper by cutting and folding. Note that solid lines should be thought of as “mountain folds” and dotted lines as “valley folds”. (The SteffenNet command is defined in this notebook's initialization cells, as are several related functions.)

2

SteffenNet@ShowEdgeLengths Ø True, ShowBoundaryLabels Ø True, ShowVertexLabels Ø TrueD êê Show; 7

a

12

7

c c 7

5

12

10

12

9 g

5 g

12 10 f

1

1

5 h 4 h 5 1

b 12

10

10 5

11

10 12 e

2

10

8

5

b

17

3

a 12

12

5

11 12 10 f

6

5

5 12 10 e

7

d d 7

6

Fig. 1 A net for Steffen's polyhedron Note that each edge is labelled with its length. Edges on the boundary are labelled with letters and edges with matching labels should match up when the model is folded. Similarly, the vertices are labelled with numbers in such a way that the numbers should match correctly. The resulting polyhedron has 14 triangular faces, 21 edges, and 9 vertices. Using this net, it is now fairly straightforward to set up a system of equations to determine the 3D locations of the vertices for the folded model. We begin by choosing three points p1 , p2 , and p3 that satisfy the distance relations described in the diagram, but which are otherwise arbitrary. p1 = 80, 0, 0<; p2 = 8-12, 0, 0<; p3 = 81 ê 24, -17 Sqrt@287D ê 24, 0<;

Now, since the polyhedron flexes, there will be a degree of flexibility in choosing the next point p4 . In fact, the polyhedron has one degree of freedom, so we will need one independent parameter to determine the coordinates of p4 . Note that p1 and p2 both lie on the x-axis and that p4 will be rotated at some angle q about that axis. Thus we might suppose that the coordinates of p4 are given by p4 = 8x, r Cos@qD, r Sin@qD<;

Note that q represents the angle between the face bound by p1 , p2 , and p3 and the face bound by p1 , p2 , and p4 . Next, we need to set up two equations describing the distance relations between p4 to p1 and p4 to p2 . We can then solve those equations for the two unknowns r and x to determine the location of p4 . These, and subsequent, equations will be set up using the mag2 function, which stands for “magnitude squared”. Of course, we'll need a specific value of q to generate an actual picture. For the purposes of this example, we choose q = p ê 12. q = Pi ê 12; mag2 = #.# &; conditions1 = 8mag2@p1 - 8x, r Cos@qD, r Sin@qD
The next 3 points must satisfy the following set of 9 equations in 9 unknowns. p5 = 8x5, y5, z5<; p6 = 8x6, y6, z6<; p7 = 8x7, y7, z7<; conditions2 = 8mag2@p5 - p4D ã 121, , ,

3

mag2@p5 - p2D ã 100, mag2@p6 - p4D ã 144, mag2@p6 - p1D ã 100, mag2@p7 - p2D ã 144, mag2@p7 - p3D ã 144, mag2@p5 - p6D ã 144, mag2@p6 - p7D ã 100, mag2@p7 - p5D ã 25<; sols = FindRoot@conditions2, 8x5, -5<, 8y5, -6<, 8z5, -3.5<, 8x6, 3.5<, 8y6, 0.1<, 8z6, -9<, 8x7, -5<, 8y7, -5<, 8z7, -8
Finally, the eighth and ninth vertices are fairly simple to find. p8 = 8x8, y8, z8<; conditions3 = 8mag2@p8 - p3D ã 100, mag2@p8 - p6D ã 144, mag2@p8 - p7D ã 25<; sols = FindRoot@conditions3, 8x8, -3.4<, 8y8, -9.7<, 8z8, -9.1
We now have the coordinates of the of the nine vertices and we need to transform this into a graphic. More than this, we will be interested in performing a number of computational operations on the polyhedron, so it makes sense to store the polyhedron in an appropriate data structure. Considering this, we'll follow the lead of Byrge Birkeland who described a very natural data structure to store a polyhedron in this journal [2]. Our polyhedron (or polytope, as Birkeland calls it) will have the following form. polytopePattern = 8v : 88_ ? NumericQ, _ ? NumericQ, _ ? NumericQ< ...<, f : 88__Integer ? Positive< ..<< ê; Max@Flatten@fDD § Length@vD;

Note that v is the list of vertices and f is a list of faces; each face is a list of integers indicating which vertices of v are the vertices of the face. Thus we can represent Steffen's polyhedron as follows. steffenPolyhedron = 8 8p1, p2, p3, p4, p5, p6, p7, p8, p9<, 881, 2, 3<, 87, 3, 2<, 81, 4, 2<, 82, 4, 5<, 82, 5, 7<, 81, 6, 4<, 84, 6, 5<, 85, 6, 7<, 86, 8, 7<, 86, 9, 8<, 81, 9, 6<, 83, 7, 8<, 83, 8, 9<, 81, 3, 9<<<; MatchQ@steffenPolyhedron, polytopePatternD True

Now it's a straightforward matter to convert this into a Graphics3D object and display it.

4 PolytopeToGraphics3D@8v_, f_< ê; MatchQ@8v, f<, polytopePatternD, opts___D := Graphics3D@Polygon@v@@#DDD & êü f, opts, ViewPoint Ø 82.594, 1.647, 1.418<, Boxed Ø FalseD; Show@PolytopeToGraphics3D@steffenPolyhedronDD;

These commands have all been encapsulated in the SteffenPolyhedron command defined in the initialization cells. This makes it easy to create a list of graphics to generate an animation. Show@GraphicsArray@Partition@Table@PolytopeToGraphics3D@ SteffenPolyhedron@qDD, 8q, Pi ê 60, Pi ê 6, Pi ê 20
Several questions now arise naturally. Perhaps the most basic is, how can we generate better images? For example, how can we make an animated image that we can grab and rotate to see various viewpoints? It seems that the best tool for this is currently JavaView [3]. Assuming you have JavaView installed on your machine, the following commands will open an interactive animation of the flexing polyhedron which you can rotate with a mouse in a separate window. (Note that these cells are set to non-evaluatable to prevent problems on machines where JavaView is not present.) Needs@"JavaView`JLink`"D; viewer = InstallJavaView@D;

5

gs = Table@PolytopeToGraphics3D@SteffenPolyhedron@tD, PlotRange Ø 88-12., 5<, 8-12, 5<, 8-10, 4<<, PolygonIntersections Ø FalseD, 8t, Pi ê 60, Pi ê 6, Pi ê 20
We won't go into anymore details here, since JavaView's integration with Mathematica is well documented on its homepage. I have also set up a pre-generated JavaView animation on my Mathematica graphics webpage: http://facstaff.unca.edu/mcmcclur/mathematicaGraphics/SteffenPolyhedron/.

3. Testing for intersection points Looking at Steffen's polyhedron from several different viewpoints, it is not easy to tell which values of q lead to a genuine non-intersecting polyhedron. To help determine this, we've defined a function NonIntersectingQ in the initialization cells. This command accepts a polyhedron with triangular faces and returns either True or False. The concepts behind NonIntersectingQ are fairly basic techniques in three-dimensional computational geometry. For example, we can use vector algebra to write a simple command to check if the point p0 is on the line segment @p1 , p2 D as follows. PointOnSegmentQ@p0 : 8x0_, y0_, z0_<, seg : 8p1 : 8x1_, y1_, z1_<, p2 : 8x2_, y2_, z2_<
We can then use this to check if two segments intersect, which can then be used to check if two triangles intersect, which can then be used to check if a triangulated polyhedron has points of intersection.. The code is a bit tedious, as many different cases need to be considered; it is all contained in an initialization cell. Note that this code based on ideas in Joseph O’ Rourke's outstanding text on computational geometry [4]. Using NonIntersectingQ we can now find a nice range of q values for which Steffen's polyhedron is non-intersecting. Table@NonIntersectingQ@SteffenPolyhedron@tDD, 8t, Pi ê 60, Pi ê 6, Pi ê 60
8True, True, True, True, True, True, True, True, True, True<

We can generate a very nice image to see how close the polyhedron is to intersection using JavaView's transparency option. g = PolytopeToGraphics3D@SteffenPolyhedron@Pi ê 60DD; JavaView@g, Transparency Ø .5D;

4. Volume Finally, there is a lovely result stating that the volume of a polyhedron which does flex must maintain a constant volume throughout the flex. This was conjectured by Bob Connelly in the 1970s and became known as the bellows conjecture, since it states that such a polyhedron would not make a good bellows.

6

The following formula computes the volume of a polyhedron with triangular faces in terms of the vertices. Note that the vertices of the faces are presumed to be listed in a common orientation. Volume@8v : 88_ ? NumericQ, _ ? NumericQ, _ ? NumericQ< ...<, f : 88_Integer ? Positive, _Integer ? Positive, _Integer ? Positive< ..<< ê; Max@Flatten@fDD § Length@vDD := Module@ 8contrib<, contrib@88x0_, y0_, z0_<, 8x1_, y1_, z1_<, 8x2_, y2_, z2_<
Let's test the bellows conjecture on Steffen's polyhedron. Note that it is strangely valid even for self-intersecting polyhedra. Volume@SteffenPolyhedron@#DD & êü Range@0, Pi ê 4, Pi ê 20.D 8200.777, 200.777, 200.777, 200.777, 200.777, 200.777<

References 1. Cromwell, P. Polyhedra. Cambridge University Press. Cambridge, UK 1997. 2. Birkeland, B. Three Dimensional Polytopes Mathematica in Education and Research. 10 (2) 2005 3. JavaView - http://www.javaview.de/. 4. O’Rourke. Computational Geometry in C (2nd Ed). Cambridge University Press. Cambridge, UK 1998.

Steffen's flexible polyhedron - CiteSeerX

SteffenNet command is defined in this notebook's initialization cells, as are several ... The resulting polyhedron has 14 triangular faces, 21 edges, and 9 vertices.

144KB Sizes 14 Downloads 269 Views

Recommend Documents

Precise yet Flexible Specification of Emergency ... - CiteSeerX
A process definition tool is used to create the process .... Finally, such systems are difficult to test and visualize, especially when the number of rules is high.

Precise yet Flexible Specification of Emergency ... - CiteSeerX
Process modeling based on workflow technologies has been used to represent .... perspective describes elementary operations performed by resources and applications. ... This is not very common in the business process field, but it is important in ...

E-Commerce with Rich Clients and Flexible Transactions - CiteSeerX
functionality; they represent development platforms themselves, with ... of existing web based applications. ... database capable of carrying out transactions (all.

E-Commerce with Rich Clients and Flexible Transactions - CiteSeerX
recent years for end user Internet applications. This is ... of existing web based applications. ..... [2] Google, Google Desktop Website, as viewed November. 2008 ...

Flexible material
Jul 13, 2000 - (75) Inventor: David Stirling Taylor, Accrington (GB) ... 156/299; 156/300;156/301; 156/512; 156/560;. 156/308.2; 428/141; ... Sarna Xiro GmbH, EC Safety Data Sheet, Jan. 16, 2001, 5 ..... 3 is a plan vieW ofa cutter grid. FIGS.

Flexible material
Jul 13, 2000 - one side of the separate elements and the substrate or to weld the elements to the substrate. The separate elements are preferably bonded to ...

Flexible material
Dec 18, 2009 - 1, 1993), 1 page. Memorandum in Support of Plaintiffs' Motion for Preliminary ...... stery and can be particularly useful When used With Wheel.

Cutting a Convex Polyhedron Out of a Sphere
mitrescu proposed an O(log n)-approximation algorithm with O(mn + n log n) running time .... We call P to be cornered if it does not contain the center o of Q ... [Sketch only] Since P contains the center o of Q, any cutting sequence, starting from .

Flexible manufacturing systems.pdf
7. a) Elaborate the term P.L.C. and explain in detail the different network systems. 10. b) Write a note on : 10. i) FMS installation. ii) FMS implementation. 8. With a ...

flexible benefits plan
Beaver County School District has established a "Flexible Benefits Plan" to help you pay for your ... Federal income or Social Security taxes are withheld.

FLEXIBLE PAVEMENT FAILURES, MAINTENANCE AND ...
Connecticut Advanced Pavement Laboratory ... 179 Middle Turnpike, U-202. Storrs ... PAVEMENT FAILURES, MAINTENANCE AND EVALUATION NOTE 1.pdf.

Fixed on Flexible
Jul 21, 2017 - This paper was prepared for the 2016 SNB/IMF/IMFER conference on “Exchange ... domestic monetary stance efficiently in response to business cycle ...... “Simple analytics of the government expenditure multiplier”. American ...

Materials - CiteSeerX
that only if the electron donor, acceptor and chromophores were linked in a line, ... nitrogen atom) on the photocurrent generation and quantum yield has been ...

Materials - CiteSeerX
Some factors such as applied bias voltage, electron donors and acceptors on the photocurrent ... that only if the electron donor, acceptor and chromophores.

Cladistics - CiteSeerX
his own words, ''The apple falls not far from the tree''—age not ..... Legendre, F., Whiting, M.F., Bordereau, C., Cancello, E.M., Evans,. T.A., Grandcolas, P., 2008.

man-155\flexible-fuel-tanks.pdf
Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. man-155\flexible-fuel-tanks.pdf. man-155\flexible-fuel-tanks.pdf.

2018 Flexible Benefits Election Form.pdf
your Explanation of Benefits (EOB) in the mail. Yes, I would like to receive direct deposit for my flex reimbursement No, I DO NOT want direct deposit. Signature Date. Medical Reimbursement Account (MRA) – reimbursement for eligible expenses, i.e.,

libplayerc - CiteSeerX
May 31, 2004 - (localhost should be replaced with the network host name of the robot). The connect function notifies the Player server that a new client wishes to recieve data. Create and subscribe a device proxy. position = playerc_position_create(c

Download - CiteSeerX
interface, the Graffiti text entry method for Palm devices, marking menus and the SHARK/ShapeWriter wordgesture keyboard, comprised a subspace in this ...

Frequency Regulation from Flexible Loads Potential, Economics ...
Frequency Regulation from Flexible Loads Potential, Economics, and Implementation.pdf. Frequency Regulation from Flexible Loads Potential, Economics, and ...