0709.1647/CC.tex
1: \pdfoutput=1  %arXiv addition for pdflatex, permits no file extensions.
2: %Must go on first line!
3: \documentclass[]{article}  
4: \usepackage{url,float}
5: \usepackage{graphicx}
6: \usepackage{amsfonts}
7: \usepackage{amssymb}
8: \usepackage{latexsym}
9: 
10: 
11: %\input{/home/orourke/tex/mac}
12: %\withcomplaints
13: 
14: \newcommand{\hide}[1]{}
15: 
16: \newcommand{\ABox}{
17: \raisebox{3pt}{\framebox[6pt]{\rule{6pt}{0pt}}}
18: }
19: \newenvironment{proof}{{\bf Proof:}}{\hfill\ABox}
20: %\newenvironment{pf}{{\bf Proof:}}{\hfill\ABox}
21: 
22: \newtheorem{theorem}{{\bf Theorem}}
23: \newtheorem{corollary}[theorem]{Corollary}
24: \newtheorem{lemma}[theorem]{Lemma}
25: \newtheorem{conjecture}[theorem]{Conjecture}
26: \newtheorem{definition}[theorem]{Definition}
27: 
28: %For labels of items.
29: \newcommand{\lemlab}[1]{\label{lemma:#1}}
30: \newcommand{\thmlab}[1]{\label{thm:#1}}
31: \newcommand{\eqlab}[1]{\label{eq:#1}}
32: \newcommand{\corlab}[1]{\label{cor:#1}}
33: \newcommand{\deflab}[1]{\label{def:#1}}
34: \newcommand{\tablab}[1]{\label{tab:#1}}
35: \newcommand{\figlab}[1]{\label{fig:#1}}
36: \newcommand{\seclab}[1]{\label{sec:#1}}
37: \newcommand{\chaplab}[1]{\label{chap:#1}}
38: 
39: \newcommand{\lemref}[1]{\ref{lemma:#1}}
40: \newcommand{\thmref}[1]{\ref{thm:#1}}
41: \newcommand{\corref}[1]{\ref{cor:#1}}
42: \newcommand{\defref}[1]{\ref{def:#1}}
43: \newcommand{\chapref}[1]{\ref{chap:#1}}
44: \newcommand{\secref}[1]{\ref{sec:#1}}
45: \newcommand{\eqref}[1]{\ref{eq:#1}}
46: \newcommand{\figref}[1]{\ref{fig:#1}}
47: \newcommand{\tabref}[1]{\ref{tab:#1}}
48: 
49: %\floatstyle{ruled}
50: %\newfloat{algorithm}{htbp}{loa}
51: %\floatname{algorithm}{Algorithm}
52: 
53: 
54: %From Erik Demaine:
55: % Complex \xxx for making notes of things to do.  Use \xxx{...} for general
56: % notes, and \xxx[who]{...} if you want to blame someone in particular.
57: % Puts text in brackets and in bold font, and normally adds a marginpar
58: % with the text `xxx'' so that it is easy to find.  On the other hand, if
59: % the comment is in a minipage, figure, or caption, the xxx goes in the text,
60: % because marginpars are not possible in these situations.
61: {\makeatletter
62:  \gdef\xxxmark{%
63:    \expandafter\ifx\csname @mpargs\endcsname\relax % in minipage?
64:      \expandafter\ifx\csname @captype\endcsname\relax % in figure/caption?
65:        \marginpar{xxx}% not in a caption or minipage, can use marginpar
66:      \else
67:        xxx % notice trailing space
68:      \fi
69:    \else
70:      xxx % notice trailing space
71:    \fi}
72:  \gdef\xxx{\@ifnextchar[\xxx@lab\xxx@nolab}
73:  \long\gdef\xxx@lab[#1]#2{{\bf [\xxxmark #2 ---{\sc #1}]}}
74:  \long\gdef\xxx@nolab#1{{\bf [\xxxmark #1]}}
75:  % This turns them off:
76:  %\long\gdef\xxx@lab[#1]#2{}\long\gdef\xxx@nolab#1{}%
77:  \gdef\turnoffxxx{\long\gdef\xxx@lab[##1]##2{}\long\gdef\xxx@nolab##1{}}%
78: }
79: 
80: 
81: % Blackboard R for real numbers, S for sphere (\S taken someplace, so \Sph).
82: \def\P{{\mathcal P}}
83: \def\C{{\mathcal C}}
84: \def\B{{\mathcal B}}
85: \def\g{{\gamma}}
86: \def\l{{\lambda}}
87: \def\r{{\rho}}
88: \def\s{{\sigma}}
89: \def\d{{\delta}}
90: \def\a{{\alpha}}
91: \def\b{{\beta}}
92: \def\th{{\theta}}
93: %\def\C{{\mathcal C}}
94: %\def\hull{\mathop{\rm hull}\nolimits}
95: \def\sp{\mathop{\rm sp}\nolimits}
96: 
97: 
98: \newcommand{\squeezelist}{\setlength{\itemsep}{0pt}}
99: 
100: %\newcounter{abc}
101: 
102: 
103: \title{Unfolding Restricted Convex Caps
104: }
105: 
106: \author{%
107: Joseph O'Rourke%
108:     \thanks{Dept. Comput. Sci., Smith College, Northampton, MA
109:       01063, USA.
110:       \protect\url{orourke@cs.smith.edu}.}
111: }%author
112: 
113: \begin{document}
114: \maketitle
115: 
116: \begin{abstract}
117: This paper details an algorithm for unfolding a class of convex
118: polyhedra,
119: where each polyhedron in the class
120: consists of a convex cap over a rectangular base,
121: with several restrictions:
122: the cap's faces are quadrilaterals, with vertices over an underlying integer
123: lattice, and such that the cap convexity is ``radially monotone,''
124: a type of smoothness constraint.
125: Extensions of Cauchy's arm lemma are used in the proof of non-overlap.
126: \end{abstract}
127: 
128: \section{Introduction}
129: \seclab{intro}
130: Few classes of convex polyhedra are known to be \emph{edge-unfoldable}:
131: unfolded by cutting along edges of the polyhedron and flattening into
132: the plane to a single piece without overlap.
133: Among the classes known to be are: pyramids, prismoids, and ``domes.''
134: See~\cite[Chap.~22]{do-gfalop-07} for background on this problem.
135: 
136: The purpose of this informal note is to introduce another narrow class of polyhedra
137: for which an edge-unfolding algorithm can be provided.
138: We call this class \emph{radially monotone lattice quadrilateral convex caps}.
139: The long name reflects the several qualifications needed to guarantee
140: correctness,
141: qualifications that hopefully can be removed by subsequent research.
142: The upper surface of such a polyhedron $\P$ is a 
143: \emph{convex cap} $C$ in the sense that
144: $C$ projects parallel to the $z$-axis to its 
145: base $B$ in the $xy$-plane without overlap.
146: In other words, the intersection of the cap $C$ with a line 
147: parallel to $z$ through an interior
148: point of $B$ is a single point.
149: In other terminology, $C$ is a \emph{terrain}.
150: $C$ is composed entirely of quadrilaterals, each of which projects to a unit lattice
151: square in the $xy$-plane, and whose projections tile $B$.
152: The base $B$ is restricted to be a rectangle.
153: $\P$ then is the convex hull of $C \cup B$, which fills in the four sides
154: $S_{x^-}$,
155: $S_{x^+}$,
156: $S_{y^-}$,
157: $S_{y^+}$.
158: See Figure~\figref{unf_k16_r2}(a,b).
159: The ``radially monotone'' qualification restricts the ``sharpness'' of
160: the convexity of the cap in a way that is not easily explained until we develop
161: more notation.
162: 
163: A more general shape would be a \emph{lattice convex cap},
164: the convex hull of $B$ and a set of points $(x,y,z)$
165: over each integer lattice point $(x,y)$ in $B$.  Here the faces are in general
166: triangles rather than quadrilaterals, and $C$ is a \emph{convex height field}.
167: The restriction to quadrilaterals
168: narrows the class considerably, as we now show.
169: 
170: \paragraph{Quadrilateral Restriction.}
171: 
172: Let the base $B$ range
173: over the lattice points
174: $x=1,\ldots,n_x$ and $y=1,\ldots,n_y$.
175: If the points above the front and left of $B$ are specified,
176: $$
177: c_x(1) \; : \; \{ (x,1) \; : \; x=1,\ldots,n_x \}
178: $$
179: and
180: $$
181: c_y(1) \; : \; \{ (1,y) \; : \; y=1,\ldots,n_y \}
182: $$
183: then all the points above the remainder of $B$ are determined.
184: %The convex curves bounding $C$ above these two sides of $B$ 
185: %we call $c_x(1)$ and $c_y(1)$ respectively.
186: This can be seen as follows.
187: If three of the four corners of a lattice cell are given,
188: $$
189: (x,y,z_0),
190: (x+1,y,z_1),
191: (x,y+1,z_3)
192: $$
193: then the fourth corner, $(x+1,y+1,z_2)$, is determined by the
194: plane containing the first three corner points, whose height
195: can be computed as
196: \begin{equation}
197: z_2 = -z_0 + z_1 + z_3
198: \eqlab{z2}
199: \end{equation}
200: Thus,
201: $$
202: (1,1,z_0),
203: (2,1,z_1),
204: (1,2,z_3)
205: $$
206: determine $(2,2,z_2)$,
207: and this determination propagates similarly out over the entire $n_x \times n_y$ rectangle.
208: Thus, if $n_x=n_y=n$, the $n^2$
209: lattice points of $B$ are fixed by specifying just the $2n -1$ values along 
210: the front and left sides.
211: %
212: A consequence of
213: Lemma~\lemref{convex.cap} below is 
214: that a lattice quadrilateral cap $C$ is convex if and only if
215: the curves at its two boundaries
216: $c_x(1)$ and $c_y(1)$
217: (i.e., the upper boundaries of $S_{x^-}$ and $S_{y^-}$)
218: are convex.
219: 
220: \paragraph{Radially Monotone.}
221: The full definition of when a convex cap is radially monotone will be
222: deferred until Section~\secref{radial} below, where it is first employed.
223: Here we define when a planar convex curve is radially monotone,
224: and give two sufficient conditions for radial monotonicity of a convex cap.
225: Let $c$ be a convex curve, and let $p_0$ and $p_i$ be two vertices of the curve,
226: with $p_{i+1}$ the vertex following $p_i$.
227: Then $c$ is \emph{radially monotone} if
228: the angle $\angle p_0 p_i p_{i+1} \ge \pi/2$,
229: for every pair of vertices $p_0$ and $p_i$.
230: The condition may be interpreted as requiring that
231: the next segment $p_i p_{i+1}$ of the chain
232: does not penetrate the circle of radius $|p_0 p_i|$
233: centered on $p_0$.
234: So points on the chain increase their radial distance from $p_0$.
235: (See ahead to Figure~\figref{radially_monotone}.)
236: The two sufficient conditions are as follows:
237: \begin{enumerate}
238: \squeezelist
239: \item
240: If the two convex curves $c_x(1)$ and $c_y(1)$ are both radially monotone,
241: then the convex cap is radially monotone.
242: \item
243: If each of these convex curves fits in a semicircle connecting its two endpoints,
244: then each is radially monotone, and so~(1) applies.
245: \end{enumerate}
246: This latter condition justifies the notion that radial monotonicity
247: enforces a type of smoothness on the convexity of the cap.
248: 
249: \section{Lattice Quadrilateral Cap Properties}
250: We now derive several properties of lattice quadrilateral convex caps.
251: 
252: \begin{lemma}[Parallelograms]
253: Every quadrilateral over a lattice cell is a parallelogram.
254: \lemlab{para}
255: \end{lemma}
256: \begin{proof}
257: Let the four corners of the quadrilateral be $a$, $b$, $c$, $d$
258: in counterclockwise order,
259: let $\a$ and $\b$ be the angles at $a$ and $b$ respectively,
260: and let $\Pi$ be the plane containing the quadrilateral.
261: We argue that the two coplanar triangles
262: $\triangle abd$ and 
263: $\triangle bcd$ are congruent.
264: They share the diagonal of the quadrilateral, $bd$.
265: The edge $ab$ must be congruent to edge $dc$, because both are 
266: the intersection of $\Pi$ with a unit vertical strip,
267: parallel (say) to the $xz$-plane.
268: Therefore $|ab|=|dc|$.
269: Similarly, $bc$ must be congruent to $ad$, because
270: both are produced by $\Pi$ intersecting the a unit vertical
271: $yz$-strip.
272: Therefore $|bc|=|dc|$.
273: Therefore $\triangle abd$ and 
274: $\triangle bcd$ have all edges the same length, and
275: so are congruent, as claimed.
276: So the angles at $a$ and at $c$ are the same, $\a$.
277: Similarly, the angles at $b$ and at $d$ are the same, $\b$.
278: \end{proof}
279: 
280: Call the chain of edges of $C$ above $(y,1),(y,2),\ldots,(y,n_x)$
281: the $x$-chain $c_x(y)$, and similarly define the $y$-chain $c_y(x)$.
282: 
283: \begin{lemma}[Cap Convexity]
284: For a lattice quadrilateral cap $C$,
285: all the $x$-chains are congruent to one another, as are all the $y$-chains.
286: \lemlab{convex.cap}
287: \end{lemma}
288: \begin{proof}
289: Consider two consecutive edges of the $x$-chain $c_x(y)$,
290: over $(x,y),(x+1,y),(x+2,y)$.
291: By the Parallelogram Lemma~(\lemref{para}),
292: the corresponding edges in the next $x$-chain $c_x(y+1)$ are
293: parallel to those in $c_x(y)$.
294: Thus the convex angle at the middle point $(x+1,y)$
295: is exactly the same as that at $(x+1,y+1)$.
296: Because this is true at every lattice point of each $x$-chain,
297: all are congruent.
298: \end{proof}
299: 
300: \noindent
301: The congruency of the chains is evident in Figure~\figref{unf_k16_r2}(a,b).
302: 
303: 
304: 
305: Let $z(x,y)$ be the point of $C$ above $(x,y)$.
306: \begin{lemma}[Cap Maxima]
307: The maximum $z$-height of
308: a lattice quadrilateral cap $C$ for
309: the points at a particular $x$-value,
310: $\max_y z(x,y)$,
311: is achieved at a $y$-value $y_{max}$ independent of $x$.
312: And the same claim holds when the roles of $x$ and $y$ are interchanged.
313: \lemlab{convex.cap.max}
314: \end{lemma}
315: \begin{proof}
316: This follows immediately from the congruency of the $x$-chains
317: provided by Lemma~\lemref{convex.cap}.
318: \end{proof}
319: 
320: \noindent
321: For example, in Figure~\figref{unf_k16_r2}(a,b), $y_{max}=14$.
322: %Lemma~\lemref{convex.cap} also follows easily from the Uphill Lemma.
323: 
324: 
325: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure Begin
326: \begin{figure}[htbp]
327: \centering
328: %\includegraphics[height=0.95\textheight]{Figures/unf_k16_r2}
329: \includegraphics[width=\linewidth]{Figures/unf_k16_r2}
330: \caption{(a,b) Two views of the same convex cap $C$.
331: %The location of the side faces 
332: %$S_{x^-}$,
333: %$S_{x^+}$,
334: %$S_{y^-}$,
335: %$S_{y^+}$
336: %are marked but the faces are not shown;
337: The base $B$ is the square at $z=0$.
338: (c)~Unfolding of $\P$.}
339: \figlab{unf_k16_r2}
340: \end{figure}
341: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure End
342: 
343: \section{Sketch of Algorithm}
344: We first sketch the unfolding algorithm, using
345: Figure~\figref{unf_k16_r2} for illustration,
346: before justifying it in the following sections.
347: The strip of quadrilaterals between 
348: $y_{max}$ and $y_{max}+1$, call it
349: the \emph{$y_{max}$-strip} is unfolded with $(1,y_{max})$
350: at the origin and its leftmost edge
351: %(between $(1,y_{max})$ and $(1,y_{max}+1)$)
352: along the $y$-axis.  Thus it unfolds roughly horizontally.
353: See the green $y=14$ strip in Figure~\figref{unf_k16_r2}(c).
354: All the other ``parallel'' $x$-strips for different $y$-values
355: are arranged above and below this $y_{max}$-strip,
356: connected along the uncut edge between $x=1$ and $x=2$.
357: All other $x$-edges for $x \ge 2$ are cut.
358: We will show that these strips splay outward from the $y_{max}$-strip,
359: avoiding overlap.
360: The two side faces
361: $\{ S_{x^-}, S_{x^+},\}$
362: are unfolded attached to the base $B$,
363: and attached to the cap unfolding at the leftmost vertical
364: edge of the $y_{max}$-strip.
365: We will show that $S_{x^-}$ in particular does not overlap
366: with the $x=1,2$ strip (outlined in red in the figure).
367: The remaining two side faces,
368: $\{ S_{y^-},S_{y^+} \}$, are attached at the two ends of the $x=1$ strip
369: as shown in the figure.
370: 
371: \section{Quadrilateral Angles}
372: 
373: We will call the four angles of a quadrilateral
374: $(\a,\b,\a,\b)$ in counterclockwise order.
375: Note that $\a+\b=\pi$, so one angle determines all the others.
376: Much of our reasoning relies on an analysis of the behavior of
377: the quadrilateral angles.
378: 
379: Fix one quadrilateral over its lattice cell, with corner heights
380: $z_0=0,z_1,z_2,z_3$, counterclockwise
381: above $(0,0),(1,0),(1,1),(0,1)$ respectively,
382: as in Figure~\figref{alpha_z1}(a).
383: We will need detailed knowledge of how the $(0,0)$ corner
384: angle $\a$ varies as a function of $z_1$ and $z_3$:
385: 
386: \begin{lemma}[One Quad]
387: For $z_3 > 0$, $\a(z_1)$ is a strictly decreasing function
388: of $z_1$, passing through $\pi/2$ at $z_1=0$.
389: $\a(z_1,-z_3) = \pi/2 - \a(z_1,z_3)$,
390: so, for $z_3 < 0$, $\a(z_1)$ is a strictly increasing function
391: of $z_1$.
392: \lemlab{alpha.z1}
393: \end{lemma}
394: \begin{proof}
395: Explicit calculation shows that
396: $$
397: \a = \a(z_1,z_3) =
398: \cos^{-1} \left( \frac {- z_1 z_3}
399: {
400: \sqrt{ 1 + z_1^2 }
401: \sqrt{ 1 + z_3^2 }
402: }
403: \right)
404: $$
405: The claimed properties follow from the properties of the inverse cosine function.
406: See Figure~\figref{alpha_z1}(b).
407: \end{proof}
408: 
409: 
410: 
411: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure Begin
412: \begin{figure}[htbp]
413: \centering
414: \includegraphics[width=0.95\linewidth]{Figures/alpha_z1}
415: \caption{(a) one quadrilateral;
416: (b)~$\a(z_1,z_3)$ is strictly decreasing for $z_3 > 0$.}
417: \figlab{alpha_z1}
418: \end{figure}
419: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure End
420: 
421: 
422: We now examine angles formed by two adjacent quadrilaterals.
423: We fix one in the position detailed above, and the other
424: adjacent to its left, with height $z'_1$ above the lattice point $(-1,0)$.
425: Note that the other three corners of this second quadrilateral are
426: then determined.
427: Let $\th$ be the angle in the vertical plane containing
428: the edges above $(-1,0),(0,0),(1,0)$,
429: and let $\a$ and $\b'$ be the angles of the quadrilateral incident
430: to the origin $(0,0,0)$.
431: See Figure~\figref{alphabeta_z3}(a).
432: We need the behavior of $(\a+\b')$ as $z_3$ varies:
433: 
434: \begin{lemma}[Two Quads]
435: Let the front edges of two adjacent quadrilaterals make
436: a convex angle of $\th$ in the vertical plane containing
437: those edges.
438: Then $(\a+\b')$ is a strictly increasing function of $z_3$,
439: passing through $\pi$ at $z_3=0$, and
440: with asymptote $\th$ for $z_3 < 0$ and $2\pi-\th$ for $z_3 > 0$.
441: \lemlab{alphabeta.z3}
442: \end{lemma}
443: \begin{proof}
444: A proof by explicit calculation, using
445: the formula used in the One-Quad Lemma~(\lemref{alpha.z1})
446: twice,
447: will not be presented.
448: Alternatively, one can arrive at the claim via the
449: One-Quad Lemma %~\lemref{alpha.z1}, 
450: as follows.
451: From Figure~\figref{alpha_z1}, $\a$ decreases as $z_3$
452: increases, but, because
453: $|z'_1| > z_1$ by convexity, $\b'$ increases more than $\a$ decreases,
454: and so $\a+\b'$ increases.
455: See Figure~\figref{alphabeta_z3}(b) for sample plots.
456: Note that, as $z_3 \rightarrow +\infty$,
457: $\a$ and $\b'$ approach lying in the vertical plane above $\th$,
458: and so $\th + \a + \b' = 2 \pi$,
459: and as $z_3 \rightarrow -\infty$,
460: $\a + \b' \rightarrow \th$.
461: \end{proof}
462: 
463: 
464: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure Begin
465: \begin{figure}[htbp]
466: \centering
467: \includegraphics[width=0.95\linewidth]{Figures/alphabeta_z3}
468: \caption{(a) Two adjacent quadrilaterals;
469: here $\th=146.3^\circ$.
470: (b) $(\a+\b')$ is a strictly increasing function of $z_3$;
471: Note the asymptote $\th=146.3^\circ$ for the highlighted curve
472: corresponding to~(a).
473: }
474: \figlab{alphabeta_z3}
475: \end{figure}
476: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure End
477: 
478: Define the \emph{turn angle} $\tau$ at point of a curve with convex angle $\th$
479: to be $\pi - \th$.
480: 
481: \begin{lemma}[Strip Unfolding]
482: Each strip of quadrilaterals unfolds without self-overlap,
483: with convex boundary curves.
484: \lemlab{one.strip}
485: \end{lemma}
486: \begin{proof}
487: Let an $x$-strip lie between $y$ and $y+1$.
488: Let $\th(x)$ be the angle at $p=(x,y,z(x,y))$
489: in the vertical $y$-plane through $p$.
490: We know from the Convex Cap Lemma~(\lemref{convex.cap})
491: that $\th \le \pi$ because the curve is convex at $p$.
492: Let $\tau_0 = \pi - \th$ be the turn angle at $p$ in the vertical plane.
493: The turn angle of
494: the unfolded quadrilaterals incident to $p$
495: is $\tau = (\a+\b')-\pi$.
496: The Two-Quad Lemma~(\lemref{alphabeta.z3}) shows that $(\a+b') \in [ \th, 2\pi - \th ]$,
497: which implies that
498: $\tau \in [ \th - \pi, \pi - \th ]$,
499: i.e.,
500: $\tau \in [ -\tau_0, +\tau_0 ]$.
501: These are precisely the angle conditions for application of the
502: extension of Cauchy's arm lemma:
503: all turn angles of the convex curve are ``straightened''~\cite{o-ecala-01}.
504: (This is an extension of Cauchy's arm lemma because nonconvexities might be introduced.)
505: The usual conclusion is that, under such a \emph{valid reconfiguration},
506: the endpoints of the chain pull further apart.
507: In~\cite[Cor.~2]{o-dipp-03} this consequence is derived:
508: A valid reconfiguration of an open convex chain remains simple,
509: i.e., does not self-intersect.
510: 
511: Although in general a valid reconfiguration could result in a nonconvex
512: straightened curve,
513: in our case the Convex Cap Lemma~(\lemref{convex.cap}) 
514: places us  
515: to the left or right of $z_3=0$ in Figure~\figref{alphabeta_z3}(b),
516: keeping all turn angles $\tau$ the same sign, and therefore
517: resulting in a convex curve.
518: 
519: So now we have established that neither of the two unfolded boundary curves
520: of the $x$-strip,
521: call them $u_y$
522: from the chain at $y$ and $u_{y+1}$ that at $y+1$,
523: self-intersect.
524: But by the Parallelograms Lemma~(\lemref{para}),
525: $u_y$ and $u_{y+1}$ are connected by, and therefore separated by, edges that are all parallel.
526: (See Figures~\figref{unf_k16_r2}(c), \figref{16x16_unf}, and~\figref{32x32_unf}.)
527: Thus $u_y$ cannot intersect $u_{y+1}$.
528: Finally, these parallel ``ladder bars'' ensure that
529: it is not possible for the first $x$-segment to intersect
530: the last $x$-segment.
531: Therefore the entire strip unfolds without self-overlap.
532: \end{proof}
533: 
534: Finally we move to an analysis of four quadrilaterals, needed to compare
535: turn angles in the unfolding.
536: 
537: \begin{lemma}[Four Quads]
538: Let four quadrilaterals be incident to the origin $o=(0,0,0)$,
539: with those touching $y=1$ the \emph{upper quads}
540: and those touching $y=-1$ the \emph{lower quads}.
541: Let the upper quads unfold with turn angle $\tau$ at $o$,
542: and the lower quads with turn $\tau_0$ at $o$.
543: Then, if the middle edge of the lower quads, over $(0,-1),(0,0)$,
544: is uphill w.r.t. $z$ ($z'_3 < 0$ in the notation below), 
545: then $\tau_0 \ge \tau$:  the lower quads unfold to turn more sharply.
546: \lemlab{four.quads}
547: \end{lemma}
548: 
549: \begin{proof}
550: We extend the analysis in the Two-Quad Lemma~(\lemref{alphabeta.z3})
551: to four quadrilaterals incident to a central point,
552: taken to be $o=(0,0,0)$ without loss of generality.
553: We repeat all the notation developed in that lemma
554: and displayed in 
555: Figure~\figref{alphabeta_z3}(a),
556: and add two new quadrilaterals,
557: determined by one new parameter $z'_3 < 0$,
558: as shown in Figure~\figref{fourquads},
559: with angle labels as indicated.
560: Knowing from the Convex Cap Lemma~(\lemref{convex.cap}) that the
561: two convex $x$-chains are congruent, we know they determine the same
562: $\th$ in vertical planes, and so Lemma~\lemref{alphabeta.z3}
563: can be applied on an equal footing to both chains.
564: Our goal is to compare the angle $A = \a+\b'$
565: to $B=\a'_0 + \b_0$, for these angles determine the turn angles.
566: Note that $A$ is the same angle studied
567: in the Two-Quads Lemma~(\lemref{alphabeta.z3}), but $B = 2\pi -(\a_0 + \b'_0)$,
568: where $(\a_0 + \b'_0)$ is the angle to which Lemma~\lemref{alphabeta.z3} applies.
569: 
570: Now, in order to maintain convexity along the $y$-chain through the central
571: point, we must have $|z'_3| \ge z_3$
572: (recall the central point is the origin, so $z'_3 < 0$).
573: Because $|z'_3|$ is right of $z_3$ in 
574: Figure~\figref{alphabeta_z3}(b), and the angle sum is strictly increasing,
575: we know that $\a_0 + \b'_0 \ge \a+\b'$,
576: i.e., $2\pi-B \ge A$.
577: Let $\tau$ be the turn angle at $o$ of the unfolding
578: of the upper two quads, $\tau = A-\pi$,
579: and $\tau_0$ the same turn angle of the lower two quads, $\tau_0 = \pi-B$.
580: Substitution into the inequality $2\pi-B \ge A$
581: yields $\tau_0 \ge \tau$.
582: \end{proof}
583: 
584: %see Figure~\figref{fourquads}.
585: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure Begin
586: \begin{figure}[htbp]
587: \centering
588: \includegraphics[width=0.45\linewidth]{Figures/fourquads}
589: \caption{Four quadrilaterals incident to $(0,0,0)$.
590: Convexity implies that $|z'_3| \ge z_3$.}
591: \figlab{fourquads}
592: \end{figure}
593: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure End
594: 
595: \noindent
596: The sharper turn angles guaranteed by this lemma provide a type
597: of separation between adjacent strips, but not enough to ensure
598: non-overlap.
599: 
600: \section{Radial Monotonicity}
601: \seclab{radial}
602: Now we finally come to the point where we need to use radial monotonicty,
603: to guarantee that the unfolding of adjacent strips do not overlap.
604: The condition we need is that the unfolded edge of each quadrilateral
605: strip be radially monotone, in the sense defined in Section~\secref{intro} above.
606: The Strip Unfolding Lemma~(\lemref{one.strip}) 
607: shows that the unfolded strip boundary is
608: a straightening of the curve $c_x(y)$ in the vertical plane,
609: so that radial monotonicity of $c_x(y)$ implies radial monotonicity of
610: the strip boundary, which justifies the first sufficient condition
611: claimed in Section~\secref{intro}.
612: 
613: We now show that any opening/straightening of a radially monotone curve
614: avoids overlap:\footnote{
615:    It may be that the equivalent of this lemma is available in the literature,
616:    but no explicit reference could be found.}
617: 
618: \begin{lemma}[Radial Monotonicity]
619: Let $c'$ be a straightening of a convex curve $c$, i.e.,
620: a reconfiguration such that every convex angle either stays
621: the same or opens closer to (but not exceeding) $\pi$.
622: Let $c$ lie in the positive quadrant with origin $o$,
623: with the left endpoints of both
624: $c$ and $c'$ at $o$.
625: If $c$ is radially monotone, then $c'$ does not intersect $c$ except at $o$.
626: \lemlab{radial}
627: \end{lemma}
628: \begin{proof}
629: First consider the curve $c_2$ in 
630: Figure~\figref{radially_monotone}, which is not
631: radially monotone at $a$ because $\angle oab < \pi/2$.
632: One can see that segment $ab$ cuts into the circle of radius
633: $|oa|$, and that under rotation about $o$, $a'b'$ crosses $ab$.
634: On the other hand, curve $c_1$ in the figure is radially monotone,
635: with each succeeding segment connecting two concentric circles.
636: Now rotation about $o$ moves each segment of $c_1$ on those circles,
637: and thus keeps the segment confined to the annulus between.  Therefore
638: such rotation cannot intersect any part of $c_1$.
639: %By Cauchy's arm lemma, the rotated $c'_1$ cannot self-intersect
640: 
641: Now because the lemma assumes that $c$ lies in the positive quadrant,
642: it is radially monotone from any other vertex $p$ beyond $o$, for the
643: angle $\angle pab$ can only be larger than $\angle oab$.
644: Now we view the opening of $c$ as composed of
645: rotations about each joint playing
646: the role of $o$ successively.  As the chain is rigid beyond
647: each rotation pivot $o$, the radial monotonicity
648: beyond $o$ is not affected.  So none of the rotations can cause
649: overlap, and the lemma is established.
650: \end{proof}
651: %see Figure~\figref{radially_monotone}.
652: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure Begin
653: \begin{figure}[htbp]
654: \centering
655: \includegraphics[width=0.7\linewidth]{Figures/radially_monotone}
656: \caption{$c_1$ is radially monotone, and $c'_1 \cap c_1 = \{o\}$; 
657: $c_2$ is not, and $ab \cap a'b' \neq \emptyset$.}
658: \figlab{radially_monotone}
659: \end{figure}
660: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure End
661: 
662: 
663: Note that if $c$ stays inside the semicircle 
664: connecting its endpoints (drawn lightly in Figure~\figref{radially_monotone}),
665: then radial monotonicity is guaranteed (because every point on the semicircle
666: subtends $\pi/2$ from the diameter).
667: This justifies the second sufficient condition
668: claimed in Section~\secref{intro}.
669: (None of the various sufficient conditions mentioned are necessary,
670: e.g., $c_1$ in the figure does not fit in the semicircle but is nevertheless
671: radially monotone.)
672: 
673: 
674: \begin{lemma}[Adjacent Strips]
675: Adjacent $x$-strips of quadrilaterals unfold without overlap.
676: \lemlab{adj.strips}
677: \end{lemma}
678: \begin{proof}
679: This now follows immediately from 
680: the Four-Quad Lemma~(\lemref{four.quads}),
681: which establishes that adjacent strip boundaries correspond
682: to a convex curve $c$ and a straightening $c'$
683: (because $\tau_0$, corresponding to $c'$, is $\ge \tau$,
684: corresponding to $c$),
685: and 
686: the Radial Monotonicity Lemma~(\lemref{radial}), 
687: which guarantees non-overlap of the two curves.
688: \end{proof}
689: 
690: \noindent
691: \begin{sloppypar}
692: Clearly the same reasoning guarantees the non-overlap of
693: the side faces $S_{x^-},S_{y^-},S_{y^+}$ with their adjacent
694: quadrilateral strips.
695: See Figures~\figref{16x16_unf} and~\figref{32x32_unf} for further
696: examples of cap unfoldings.
697: \end{sloppypar}
698: 
699: That the radial monotonicty restriction is sometimes necessary is
700: established by the overlapping unfolding of a convex cap that has such a
701: plummet in $z$ values near one corner of $B$ that the cap curves fail to be
702: radially convex there.
703: See Figure~\figref{overlap_r2}.
704: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure Begin
705: \begin{figure}[htbp]
706: \centering
707: \includegraphics[width=0.9\linewidth]{Figures/overlap_r2}
708: \caption{Overlap caused by a sharply convex cap.
709: (Side faces are not shown.)
710: }
711: \figlab{overlap_r2}
712: \end{figure}
713: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure End
714: 
715: \section{Global Non-Overlap}
716: We have now established that all overlap is avoided locally, but there
717: still remains the issue of possible ``global overlap,'' overlap of widely separated
718: portions of the surface.
719: It is easy to add rays to the ends of each $x$-strip, and
720: rays on the sides of $S_{y^-}$ and $S_{y^+}$, that shoot to
721: infinity without crossing, as in
722: Figure~\figref{unf_rays}.
723: The $x$-strip rays can be thought of as edges of extensions of $c_x(y)$
724: with long ``tail'' quadrilaterals extending toward $z \rightarrow -\infty$,
725: which can be seen to preserve radial monotonicity.
726: These rays partition the plane and separate the pieces of the unfolding from
727: one another.
728: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure Begin
729: \begin{figure}[htbp]
730: \centering
731: \includegraphics[width=0.5\linewidth]{Figures/unf_rays}
732: \caption{Extension by rays establishes global non-overlap.}
733: \figlab{unf_rays}
734: \end{figure}
735: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure End
736: 
737: \section{Future Work}
738: The class of shapes for which the presented unfolding algorithm
739: guarantees non-overlap is narrow and of no interest except as
740: a possible stepping stone to more general shapes.
741: Next steps
742: (in order of perceived difficulty)
743: include attempting to
744: extend the algorithm to:
745: \begin{enumerate}
746: \squeezelist
747: \item remove the radially monontone assumption;
748: \item remove the assumption that $B$ is a rectangle;
749: \item include shapes with both an upper and a lower convex cap surface;
750: \item remove the assumption that all faces are quadrilaterals.
751: \end{enumerate}
752: 
753: %see Figure~\figref{16x16_unf}.
754: %see Figure~\figref{32x32_unf}.
755: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure Begin
756: \begin{figure}[htbp]
757: \begin{minipage}[b]{0.48\linewidth}
758: \centering
759: \includegraphics[width=\linewidth]{Figures/16x16_unf}
760: \caption{$16 \times 16$ cap unfolding.}
761: \figlab{16x16_unf}
762: \end{minipage}%
763: \hspace{0.04\linewidth}%
764: \begin{minipage}[b]{0.48\linewidth}
765: \centering
766: \includegraphics[width=\linewidth]{Figures/32x32_unf}
767: \caption{$32 \times 32$ cap unfolding.}
768: \figlab{32x32_unf}
769: \end{minipage}%
770: \end{figure}
771: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure End
772: 
773: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
774: %\small
775: %\baselineskip=0.9\baselineskip
776: % Decrease the space between bibliography items.
777: %\let\realbibitem=\bibitem
778: %\def\bibitem{\par \vspace{-0.6ex}\realbibitem}
779: 
780: \bibliographystyle{alpha}
781: %\bibliographystyle{plain}
782: \bibliography{/home/orourke/bib/geom/geom}
783: \end{document}
784: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
785: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
786: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
787: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
788: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
789: 
790: 
791: see Figure~\figref{X}.
792: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure Begin
793: \begin{figure}[htbp]
794: \centering
795: \includegraphics[width=0.75\linewidth]{Figures/X}
796: \caption{Y.}
797: \figlab{X}
798: \end{figure}
799: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure End
800: 
801: 
802: \begin{lemma}
803: \lemlab{x}
804: \end{lemma}
805: \begin{proof}
806: \end{proof}
807: 
808: 
809: 
810: 
811: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
812: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
813: %Old proofs, correct but plodding :-/.  Left here for nostalgia and copy&paste.
814: \hide{
815: Say a directed edge of $C$ is \emph{uphill} its
816: second endpoint is strictly above its first endpoint.
817: 
818: \begin{lemma}[Uphill]
819: For a lattice quadrilateral cap $C$,
820: the edge above
821: $(x,y)$ to $(x+1,y)$ is uphill
822: if and only iff
823: $(x,1)$ to $(x+1,1)$ is uphill.
824: And the same claim holds when the roles of $x$ and $y$ are interchanged.
825: \lemlab{uphill}
826: \end{lemma}
827: \begin{proof}
828: Consider the lattice cell at the origin,
829: $(0,0),(1,0),(1,1),(0,1)$, with
830: quadrilateral corner heights 
831: $z_0=0,z_1,z_2,z_3$ respectively
832: (as in Figure~\figref{alpha_z1}(a) below).
833: We know from Eq.~\eqref{z2} that 
834: \begin{equation}
835: z_2 = z_1 + z_3
836: \eqlab{z1}
837: \end{equation}
838: The edge $(0,0),(1,0)$ is uphill only if $z_1 > 0$.
839: The edge $(0,1),(1,1)$ is uphill only if $z_2 > z_3$,
840: which occurs exactly when $z_1 > 0$.  This establishes
841: the claim of the lemma for the edges of one particular cell.
842: But this reasoning works independent of which cell is used,
843: so it holds true of any quadrilateral of $C$.
844: Now the full claim of the lemma follows by iterating
845: the reasoning (or applying induction):
846: $(x,1)$ to $(x+1,1)$ is uphill iff
847: $(x,2)$ to $(x+1,2)$ is uphill iff
848: $(x,3)$ to $(x+1,3)$ is uphill, etc.
849: \end{proof}
850: }%hide
851: 
852: \hide{
853: We need a lemma slightly more nuanced than the Uphill Lemma:
854: 
855: \begin{lemma}[Cap Convexity]
856: For a lattice quadrilateral cap $C$,
857: the chain above the three consecutive lattice points
858: $(x,y),(x+1,y),(x+2,y)$ is convex
859: iff
860: the chain above
861: $(x,1),(x+1,1),(x+2,1)$ is convex.
862: And the same claim holds when the roles of $x$ and $y$ are interchanged.
863: \lemlab{convex.cap}
864: \end{lemma}
865: \begin{proof}
866: The proof parallels that of the uphill lemma.
867: Without loss of generality, we translate $(x+1,1,z)$ to the origin $(0,0,0)$
868: to ease the algebra.
869: Consider again the lattice cell at the origin,
870: $(0,0),(1,0),(1,1),(0,1)$, with
871: quadrilateral corner heights 
872: $0,z_1,z_2,z_3$ respectively
873: Eq.~\eqref{z1} then holds, as in Lemma~\lemref{uphill}.
874: %\begin{equation}
875: %z_2 = z_1 + z_3
876: %\eqlab{z1}
877: %\end{equation}
878: Now extend with a cell at its left,
879: $(-1,0),(0,0),(0,1),(-1,1)$, with corner heights
880: $z'_1,z_0=0,z_3,z'_2$ respectively.
881: Again Eq.~\eqref{z2} yields
882: \begin{equation}
883: z'_2 = z'_1 + z_3
884: \eqlab{z11}
885: \end{equation}
886: Now the front chain over $(-1,0),(0,0),(1,0)$ is
887: convex iff
888: \begin{equation}
889: z_1 \le -z'_1
890: \eqlab{front.convex}
891: \end{equation}
892: The back chain over $(-1,1),(0,1),(1,1)$
893: is convex iff
894: \begin{equation}
895: z_2 \le z_3 +(z_3-z'_2)
896: \eqlab{back.convex}
897: \end{equation}
898: Solving for $z_1$ and $z'_1$ in Eqs.~\eqref{z1} and~\eqref{z11}
899: and substituting into Eq.~\eqref{front.convex}
900: yields Eq.~\eqref{back.convex}.
901: 
902: This establishes
903: the claim of the lemma for one particular chain centered over $(0,0)$.
904: But this reasoning works independent of which lattice point is used.
905: so it holds anywhere on $C$.
906: Now the full claim of the lemma follows by iterating
907: the reasoning: %(or applying induction):
908: the chain centered over
909: $(x,1)$ is convex iff the chain over
910: $(x,2)$ is convex iff the chain over
911: $(x,3)$ is convex, etc.
912: \end{proof}
913: }%hide
914: