Next Article in Journal
Iterative Oblique Decision Trees Deliver Explainable RL Models
Previous Article in Journal
Reinforcement Learning in a New Keynesian Model
Previous Article in Special Issue
Line Clipping in 3D: Overview, Techniques and Algorithms
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Folding Every Point on a Polygon Boundary to a Point

by
Nattawut Phetmak
and
Jittat Fakcharoenphol
*
Faculty of Computer Engineering, Kasetsart University, Bangkok 10900, Thailand
*
Author to whom correspondence should be addressed.
Algorithms 2023, 16(6), 281; https://doi.org/10.3390/a16060281
Submission received: 1 May 2023 / Revised: 29 May 2023 / Accepted: 29 May 2023 / Published: 31 May 2023
(This article belongs to the Special Issue Machine Learning in Computational Geometry)

Abstract

:
We consider a problem in computational origami. Given a piece of paper as a convex polygon P and a point f located within, we fold every point on a boundary of P to f and compute a region that is safe from folding, i.e., the region with no creases. This problem is an extended version of a problem by Akitaya, Ballinger, Demaine, Hull, and Schmidt that only folds corners of the polygon. To find the region, we prove structural properties of intersections of parabola-bounded regions and use them to devise a linear-time algorithm. We also prove a structural result regarding the complexity of the safe region as a variable of the location of point f, i.e., the number of arcs of the safe region can be determined using the straight skeleton of the polygon P.

1. Introduction

Paper folding offers rich computational geometry problems with many real-world applications [1]. The topic, typically referred to as computational origami or mathematics of paper folding [2,3], studies both feasibility problems and also structural problems [4,5,6] with the aim to illuminate the connections between physical structures/problems and mathematical geometric objects (see, e.g., [7,8]). As geometric construction using straightedge and compass offers elegant connections between algebra and geometry, paper folding, which can be seen as geometric construction with additional operations, may provide beautiful structural properties worth studying (e.g., see [2,9]).
Akitaya, Ballinger, Demaine, Hull, and Schmidt [4] previously considered two folding problems on a convex piece of paper P. Given a query point p inside P, their first problem, originally proposed by Haga [10,11,12], called points to a point, is to find a region containing p bounded by creases after fold-and-unfold of each corner of P onto p. Their second problem, called lines to a line, takes as an input a line inside P and the goal is to find a region containing bounded by creases after a fold-and-unfold of each side of P onto . Although these two problems share a similar structure, they find that the outcomes diverge. That is, the region in the first problem resembles a Voronoi cell [13] with the inner point and corners as seeds, while the region in the second problem relies on the straight skeleton of the piece of paper.
We consider a variant of this folding problem in the same flavor, i.e., we are given a query point f inside P and we are interested in a region containing f bounded by creases after a fold-and-unfold of every point on the boundary of the paper δ P onto f. We call this result region a safe region R since every point p R is safe from this folding procedure. Our contributions are an analysis of the shape of R, an efficient algorithm for finding R, and a complexity of the safe region with respect to any query point f.
Figure 1a shows a few creases after folding various points on polygon edge v 2 v 3 ¯ onto point f. The resulting safe region is shown in Figure 1b. Figure 2 provides a comparison between point-to-point folding considered in Akitaya et al. [4] (in Figure 2a) and our work (in Figure 2b).
We first show that, although we fold infinitely many points on δ P , the result region R can be described finitely. It is a well-known result that a fold-and-unfold of multiple points from a line onto a point produces an envelope of a parabola. Thus, we consider each “side” of R as a parabolic arc instead of a traditional straight line segment. The analysis is presented in Section 2.
Using the analysis of the properties of safe regions, we present a linear-time algorithm for finding the region R, given a piece of paper P as a sorted list of n corners in counterclockwise order. Our algorithm works similarly to Graham’s scan for a convex hull. That is, we consider adding one side of P as a parabola arc at a time, maintaining the loop invariant that regulates the region R. During each iteration, we may destroy some of the previously added parabola arcs. The key insight is that the destroyed parabola arc must be the one that is closest to the newly added parabolic region. Thus, it allows us to amortize the cost of destroying, achieving a linear-time algorithm overall. Section 3 explains the algorithm in full detail.
Finally, given any potential query point f, we calculate the precise number of parabola arcs of the region R. They turn out to be dependent on a set of inscribed circles, each of which is centered at a node of the straight skeleton of P. We dedicate Section 4 to focus solely on this property.
We hope that our problem will expand the richness of the family of fold-and-unfold origami problems. Nevertheless, it could serve as a bridge joining the previous two problems from [4], since our problem statement is similar to their first problem, but our result is similar to their second problem.

2. Preliminaries

In this section, we provide a formal definition of the problem. We are given a convex polygon P as an ordered list of vertices V ( P ) = [ v 1 , v 2 , , v n ] in counterclockwise order. We shall treat the list as a circular list. Given two points a and b, we refer to a line segment whose ends are a and b as a segment a b ¯ . Equivalently, the polygon P is also represented as a list of edges E ( P ) = [ e 1 , e 2 , , e n ] , where e i = v i v i + 1 ¯ is a line segment joining v i and v i + 1 . We denote its boundary as δ P , i.e., δ P = E ( P ) .
We are also given a point f strictly inside P. Consider a point u δ P on edge e i = v i v i + 1 ¯ . Folding u onto f results in a straight line L, referred to as a crease line, which passes through the middle point on the line segment u f ¯ and is also orthogonal to u f ¯ . We are interested in the set of crease lines when folding every point on e i onto f. The envelope of this family of crease lines corresponds to a parabola, whose focus is f and directrix is a line resulting from extending the segment e i to a line. We refer to this parabola as p i . See Figure 3.
To see this, let line L be erected perpendicularly to the directrix at point u, and let u = L L . We have | u f ¯ | = | u u ¯ | , which indeed obeys the definition of parabolas. In other words, u is a point on a parabola’s curve. Furthermore, for every point v L such that | v f ¯ | < | v u ¯ | , the point v is “safe” from other creases produced by fold-and-unfold of every other point from this directrix, which is a line extension of the segment e i .
Since p i divides the plane into two parabolic half-planes, we are interested in the region containing f. We define a half-space H ( p i ) to be the half-plane containing f. More formally, H ( p i ) contains all points v such that | v f ¯ | | v u ¯ | , where u is an orthogonal projection of v on the line extension of e i .
Our goal is to find:
R = i = 1 n H ( p i ) ,
defined to be the safe region. When focusing on point f, we sometimes refer to the safe region with respect to point f as R f .
We describe the algorithm in Section 3. Later in this section, we state relevant geometry facts.

2.1. A Parabola as a Projection of a Conic Section

A parabola can be viewed as a conic section, i.e., a curve on a surface of a cone intersecting a cutting plane tilted at the same angle as the cone. Analytically, we consider a Euclidean space R 3 . A cone is a surface satisfying the equation:
x 2 + y 2 z 2 = 0
with an apex of the cone at the origin. A cutting plane can be defined with an equation:
x cos θ + y sin θ z = r ,
where r is the distance on the x y -plane from the cone’s apex to the nearest point of the cutting plane, and θ is the directional angle on the x y -plane to that point. By this definition, we have a parabola as a curve on the tilted cutting plane. See Figure 4a,b.
A projected parabola is an orthogonal projection of the tilted parabola onto the x y -plane, which is also a parabola. The projected parabola has the cone’s apex as its focus, and an intersect line of the cutting plane with the x y -plane as its directrix. This projection viewpoint was briefly mentioned at the end of [14]. In this paper, we refer to projected parabolas simply as parabolas.
We say that parabola p is in the upright form if, by rotating and translating the x y -plane, the parabola possesses an analytical form of y = t x 2 where t > 0 .

2.2. Two Parabolas

We define semi-confocal parabolas as a family of parabolas that share the same focus, but their directrixes do not need to have the same directional angle. It follows that semi-confocal parabolas are projected parabolas from multiple cutting planes that cut the same cone. We state two important facts on intersections of two parabolas which, under the conic interpretation, are straightforward.
Lemma 1. 
Two semi-confocal parabolas do not intersect iff their directional angles are the same.
Proof. 
Two parabolas with the same directional angle are produced from two parallel cutting planes in the conic view, which never intersect.    □
Lemma 2. 
If two semi-confocal parabolas intersect, then they intersect at two points which also lie on an angle bisector of their directrixes.
Proof. 
Take conic section interpretation. Their curves on the surface of the cone must also lie on their cutting planes, in which the intersection of the planes is a straight line. This line piece goes through the cone exactly two times. See Figure 4c,d.    □
It follows from Lemma 2 that two intersecting semi-confocal parabolas p i , p j produce a safe region R = H ( p i ) H ( p j ) which is a bounded convex region. Moreover, since we only deal with parabolas whose directrixes are from boundary edges of a convex polygon, the non-intersecting case never occurs.
Given two parabolas p i and p j , we can compute their intersections using analytical techniques in O ( 1 ) time as follows. We reduce the problem of finding intersection of two parabolas to the problem of finding intersection of a parabola and a line. Without loss of generality, we consider p i in the upright form. From Lemma 2, we find an angle bisector b such that it divides the inner angle between edges e i and e j . Then, we find the resulting intersections of p i and b using quadratic equations.
We remark particularly on the structure of the safe region R.
Consider each parabola p i in the upright form. We can partition this parabola using the two intersection points into three arcs: the left arc, the central arc, and the right arc, where the left arc corresponds to the half-parabola unbounded to and the right arc corresponds to the half-parabola unbounded to + , and the central arc lies between the two intersection points (see Figure 5). Under this notation, we note that the left arc of p i intersects p j only once at the intersection point where it also intersects the right arc of p j , and vice versa.
In our analysis, where there are parabolas p 1 , p 2 , , p n , we refer to the two intersection points between parabolas p i and p j as q i j and q j i . To distinguish between these two points, imagine if one traverses counterclockwisely on the boundary of H ( p i ) H ( p j ) , then one would see an arc of p i , the intersecting point q i j , the arc of p j , and then the intersection point q j i . The counterclockwise definitions of these points are crucial to our proof of Lemma 4. See Figure 4d.

2.3. Many Parabolas

In this section, we analyze the structure of the intersection of k semi-confocal parabolas, extending the result from the previous section.
Let p 1 , p 2 , , p k be k semi-confocal parabolas with different directional angles. We shall consider the safe region of these parabolas and prove the following lemma.
Lemma 3. 
Each parabola touches at most one arc of the safe region.
Proof. 
We prove by induction on k for the case where k = 2 follows from Lemma 2. Consider k parabolas. Let R = i = 1 k 1 H ( p i ) . Inductively, each parabola p 1 , p 2 , , p k 1 touches at most one arc of R . We consider R = R H ( p k ) , we shall show that p k only touches at most one arc of R. If R H ( p k ) , then R = R and p k does not touch R; hence, the lemma is true. We then assume that R H ( p k ) .
Clearly, p k touches one arc of R = R H ( p k ) . We call that arc a k . Each endpoint of a k belongs to some arc of R .
There are two cases.
Case 1: Both endpoints of a k belongs to a single arc of p i . In this case, p k intersects exactly one arc of R exactly twice. Then, the safe region R is the intersection of exactly two parabolas, i.e., R = H ( p i ) H ( p k ) . Thus, the lemma follows from Lemma 2.
Case 2: One endpoint of a k belongs to p i while the other belongs to p j . We show that in this case, p k intersects exactly two arcs, implying the lemma. We consider p i first, i.e., we look at the intersection R i = H ( p k ) H ( p i ) . Let q i be the intersecting point of p i and p k . We can partition p k into three arcs; let b k be the unbounded arc starting at q i . From Lemma 2, we know that b k only intersects R i once. Since R R i , we have that b k also intersects R at most once at q i . We follow the same argument for p j . Thus, p k only intersects R exactly twice, as claimed.    □

3. The Algorithm

Our algorithm for finding a safe region works similarly to Graham’s scan [15] for convex hull. We briefly described the algorithm as a pseudocode in Algorithm 1. Later in this section, we explain the algorithm and prove its correctness.
Algorithm 1: Our algorithm for finding the safe region.
Algorithms 16 00281 i001
Algorithm 1 uses the following subroutines. Subroutine PARABOLA ( f , e ) creates a representation of a parabola with f as its focus and a line extension of edge e as its directrix. Subroutine INNERINTERSECTION ( p i , p j ) computes the intersection point q i j of parabola p i and p j ; we recall that from Lemma 2, there are two intersection points and this subroutine returns the “inner” one, i.e., q i j , not q j i .
Since our goal is to find a safe region,
R = i = 1 n H ( p i ) ,
Algorithm 1 iterates over parabolas p i producing a partial solution R i such that:
R i = j = 1 i H ( p j ) ,
i.e., R i is the safe region for the first i parabolas. We maintain R i as a cyclic list of parabola arcs:
a 1 , a 2 , , a k ,
where each arc a j is a 3-tuple ( p , , r ) which keeps a reference to the parabola a j . p , its left endpoint a j . , and its right endpoint a j . r . We note that with this representation, a j . r = a j + 1 . for 1 j < k , and a k . r = a 1 . . We also note that, using the notation defined in Section 2.2, a j . r is q j ( j + 1 ) and a j . is q ( j 1 ) j .
Initially, we start with R 2 = H ( p 1 ) H ( p 2 ) . We encode the partial safe region as an ordered list of arcs, A ( R 2 ) = [ a 1 , a 2 ] , where:
a 1 = ( p 1 , q 21 , q 12 ) a 2 = ( p 2 , q 12 , q 21 )
For each iteration i > 2 , we consider adding H ( p i ) to R i 1 to produce R i = R i 1 H ( p i ) . There are three cases:
  • Case 1: p i does not change the region, i.e., R i 1 H ( p i ) = R i 1 and we can discard p i ;
  • Case 2: p i clips the region, i.e., all parabola arcs in R i 1 remain on the boundary of R i 1 H ( p i ) ; or
  • Case 3: p i eclipses other parabolas in the region, i.e., some parabola arc is entirely outside R i 1 H ( p i ) .
Figure 6 illustrates these three cases. The safe regions R i 1 are shown with additional parabolas p i with e i as their directrixes.
To distinguish between these cases, our basic procedure is to test if a point lies in H ( p i ) . The counterclockwise ordering of parabolas ensures that p i would affect two sequences of arcs, i.e., clockwisely,
a k , a k 1 , a k 2 , ,
to be referred to as the neighbors to the left of p i , and counterclockwisely,
a 1 , a 2 , a 3 , ,
to be referred to as the neighbors to the right of p i ,
We first consider point q k 1 = a k . r (which is also a 1 . ). Lemma 4 below ensures that we are in Case 1 if q k 1 H ( p i ) . See Figure 7.
Otherwise, some part of R i 1 is below parabola p i . We in turns consider the points:
a k 1 . r , a k 2 . r , ,
from the neighbors to the left of p i and find the largest index j such that a j H ( p i ) . In this case, the parabolas a k . p , a k 1 . p , , a j + 1 . p are eclipsed by p i .
We also process the neighbors to the right of p i similarly by finding the smallest index j such that a j H ( p i ) together with the sequence of eclipsed arcs a 1 , a 2 , , a j 1 . We note that it can be the case that j = j when only one arc survives p i eclipsing.
To construct R i , we discard eclipsed arcs, add a new arc a i for p i , and compute the following:
  • The left intersection point a i . = a j . r , which is the intersection between p i and a j . p ;
  • The right intersection point a i . r = a j . , which is the intersection between p i and a j . p .
Finally, we re-index the arcs in R i . We quickly remark that this procedure can be seen as a “twin-headed” Graham scan.
The following lemmas show that this procedure is correct.
Lemma 4. 
If q k 1 H ( p i ) , then R i 1 H ( p i ) and R i = R i 1 .
Proof. 
Since R i 1 H ( p 1 ) H ( p k ) , our goal is to show that H ( p 1 ) H ( p k ) H ( p i ) in this case.
Consider the intersection of p 1 and p k . Recall that the two intersection points q k 1 and q 1 k partition both parabolas into their left arcs, central arcs, and right arcs. Let us call them a k , a k c , a k r and a 1 , a 1 c , a 1 r .
We now consider the intersection of p 1 and p i . We show that q i 1 , the intersection point of p i and p 1 , is on the left arc a 1 of p 1 . To see this, we start by rotating the plane such that p i is in the upright form. Then, we find a region r = H ( p 1 ) H ( p i ) . Since q k 1 p 1 and also q k 1 H ( p i ) , q k 1 in on the boundary of H ( p 1 ) H ( p i ) = r . Again, since q k 1 p 1 and also on the boundary of r, traversing from q k 1 on the boundary of r clockwisely with respect to f would reach q i 1 , by definition of q i 1 , as claimed.
Using the same argument, we can show that q k i is in the right arc a k r of p k .
Using q i 1 and q k i , we partition p i into three arcs— a 1 , a 2 , and a 3 —so that a 1 is an unbounded curve with q i 1 as its end point, a 2 is a bounded part with q i 1 and q k i as their end points, and finally, a 3 is an unbounded curve with q k i as its end point (see Figure 7).
Using the structure from Lemma 2, we know that a 1 a 2 intersects p k at only q k i a k r . Thus, p i does not intersect a k c a k .
Additionally, we know that a 2 a 3 intersects p 1 at only q i 1 a 1 , implying that p i does not intersect a 1 r a 1 c .
We can conclude that p i does not intersect with R i 1 because R i 1 lies between the unbounded curves a k c a k and a 1 r a 1 c . □
We also have a simple contraposition.
Corollary 1. 
If R i 1 H ( p i ) , then q k 1 H ( p i ) .
Let R ^ = j = 1 i H ( p j ) be the correctly updated solution, we would like to show that R i constructed above equals R ^ . We remark that the i-th parabola p i corresponds to edge e i that comes counterclockwisely after all other edges that contribute to R i 1 .
Lemma 5. 
If R i 1 H ( p i ) , the arcs on R i 1 ’s boundary which do not belong to R ^ form a consecutive sequence:
a j , a j + 1 , , a k , a 1 , a 2 , , a j .
Proof. 
Lemma 3 ensures that if p i intersects the boundary of R i 1 , p i touches at most one arc of R ^ , the result of the intersection of H ( p i ) and R i 1 . This implies that the arcs of R i 1 do not belong to form a (circular) consecutive sequence. To see this, assume otherwise and note that in that case, p i would touch more than one arc of R ^ .
Our procedure finds the consecutive sequence starting at q k 1 , the intersection of p k and p 1 , then iterates through other consecutive points. Thus, the procedure is correct if the starting point is correct, i.e., we start at some intersection point outside R ^ . This is indeed the case because Corollary 1 guarantees that when R i 1 ¬ H ( p i ) , q k 1 is outside R ^ . □
We conclude with our main correctness theorem.
Theorem 1. 
Our updating procedure is correct, i.e., R i + 1 = R ^ , and the algorithm computes the safe region in linear time.
Proof. 
Regarding the updating procedure, we deal with three possible cases. Lemma 4 ensures that our condition for Case 1 is correct. In other cases, Lemma 5 shows that the procedure for deleting arcs is correct. By induction on n, the algorithm thus produces the required safe region.
To analyze the running time, we first note that, except the two inner while loops, for each i, the algorithm runs in O ( 1 ) time. To account for the running time of the inner while loops, observe that each iteration of the loop removes one parabola from the list. Since at most n parabolas are inserted in the list, the deletion can take place at most n times, implying the total running time of O ( n ) for the loops. □

4. The Number of Arcs of the Safe Region

In this section, we consider the complexity of the boundary of the safe region; in other words, we count the exact number of arcs of the safe region. From previous sections, we derive that a side of the safe region is a parabolic arc with point f as its focus. We also see that some edge of P may not contribute to the resulting safe region, i.e., a parabola associated with it does not touch the safe region. It is natural to ask for the number of arcs of the safe region.
Assuming that the polygon P is fixed, the number of arcs of the safe region depends on the focus f. We denote explicitly by R f a safe region with point f as its focus. As in [4], this section analyzes the number of arcs of safe region R f , i.e., | A ( R f ) | , where A ( R f ) is the set of arcs of R f . Figure 8a shows two safe regions R f 2 with query point f 2 and R f 3 with query point f 3 .
Akitaya et al. [4] consider the same problem for the case where each side of P is folded onto a line. They show that the straight skeleton of P plays an important role in determining the number of sides of the resulting region. This is true for our case as well. As an example, Figure 8b shows an inscribed circle C which can be determined using the straight skeleton and two safe regions shown previously. We remark that f 2 C but f 3 C .
We start by defining useful notations related to straight skeletons and event circles. A straight skeleton [16] of a polygon P, denoted by S ( P ) , is a subset of P such that for each point u S ( P ) , there exist at least two points on δ P with the same distance to u. More intuitively, we may see the skeleton as a Voronoi diagram of line segments where each site is an edge of the polygon. The straight skeleton S ( P ) partitions P into regions, referred to as faces. Thus, under the Voronoi interpretation, each face is bounded by exactly one polygon edge as other edges of S ( P ) . We refer to a face that is bounded by polygon edge e i as face F i . We also note that a face is also a convex polygon. See Figure 9 for an illustration.
The skeleton may be viewed as a tree, where each non-leaf node ensures at least three equidistant points on δ P . A non-leaf node of S ( P ) is referred to as an event point. A circle centered at an event point and tangential to the nearest edge of the polygon is called an event circle of S ( P ) . Let C be the set of all event circles of S ( P ) , and let C e C be a set of event circles tangential to edge e. We also denote by int ( C ) an interior of circle C, i.e., the set { ( x , y ) : ( x x 0 ) 2 + ( y y 0 ) 2 < r 2 } for a circle with center ( x 0 , y 0 ) and radius r.
The goal of this section is to show that, under the fixed polygon P, the structure of A ( R f ) is governed by event circles of straight skeleton S ( P ) of P.
We start by analyzing the case when the safe region intersects with the skeleton faces. The following lemma directly follows from the Voronoi interpretation of the straight skeleton.
Lemma 6. 
For each event circle C with event point c, c is adjacent to face F i if and only if its corresponding polygon edge e i is tangential to C.
The following two lemmas provide basic properties for our main theorem in this section.
Lemma 7. 
For a particular focus f, int ( R f ) intersects with skeleton face F i adjacent to edge e i iff the associated parabola p i is part of the arcs of R f .
Proof. 
( ) Assume that int ( R f ) intersects F i . Since F i is bounded by a polygon edge and R f is contained in P, we know that there are parts of the boundary of R f that intersect F i . Consider any point u on the boundary of R f inside F i . Clearly, u must be on an arc of some parabola, i.e., we have that:
min j | u u j ¯ | = | u f ¯ | ,
where u j is an orthogonal projection of u onto e j . Since all points in F i are closer to e i than other edges, the minimizer of the above term is u i ; thus, u must also lie on p i , i.e., p i is part of arcs of R f .
( ) We prove by contradiction. Assume that int ( R f ) does not intersect F i , but p i is part of the boundary of R f . Consider any point u p i on the boundary. Since int ( R f ) is disjoint from F i , u is strictly in some face F j . In this case, we have that:
| u f ¯ | = | u u i ¯ | > | u u j ¯ | ,
where u i and u j are orthogonal projections of u onto e i and e j , implying that u H ( p j ) , a contradiction. □
Lemma 8. 
For C C with event point c, a safe region R f strictly contains an event point c, i.e., c int ( R f ) , iff f int ( C ) .
Proof. 
Let r be the radius of an event circle C. Project c orthogonally to a line extension of every edge e i , named the projected point c i .
( ) Assume that f int ( C ) , i.e., | c f ¯ | < r . We show that r H ( p i ) for every parabola p i associated with polygon edge e i . This is the case when r is strictly closer to f than every other edge e i . Consider each edge e i tangent to C, we have | c f ¯ | < r = | c c i ¯ | . For edge e i not tangent to C, we have that | c c i ¯ | > r ; thus, | c f ¯ | < r < | c c i ¯ | . Hence, c is in the safe region R f .
( ) Assume that f int ( C ) . In this case, we have | c f ¯ | r . Since C is an event circle, there exists edge e i tangent to C. For that particular edge, we have | c c i ¯ | = r . Thus, | c f ¯ | r = | c c i ¯ | , and c is not strictly contained in the safe region R f . □
The following theorem gives the number of boundary arcs of R f as a function of event circles containing f.
Theorem 2. 
If f is strictly inside some event circle, i.e., f int ( C ) for some C C , then:
| A ( R f ) | = { e i E ( P ) : t h e r e e x i s t s C C e i s . t . f int ( C ) }
Otherwise, | A ( R f ) | = 2 .
Proof. 
We first assume that f int ( C ) for some event circle C. Consider each event circle C with event point c such that f int ( C ) . From Lemma 8, we know that c int ( R f ) . This also means that int ( R f ) intersects every face F i adjacent to event point c. Lemma 6 ensures that these faces F i ’s correspond with edges e i ’s tangent to C, the set of edges e i such that C C e i . Since Lemma 7 ensures that for each face F i adjacent to edge e i intersecting with R f , the parabola p i appears as an arc of R f , we have that for each tangent edge e i of C, its parabola p i appears as an arc in R f . The lemma, in this case, follows by taking the union of all boundary edges from every event circle C C that f is strictly inside.
On the other hand, if f is not strictly contained in any event circle C C , Lemma 2 ensures that the safe region must touch two parabolas. □
Figure 10 shows an application of Theorem 2. The event circles are shown with their intersections. From Theorem 2, for each point f, the number of arcs of A ( R f ) depends on the number of edges tangent to event circles containing f. Thus, every point f in a particular intersection of event circles has the same value of | A ( R f ) | . Each intersection in Figure 10 is shown with a different color depending on the value of | A ( R f ) | for a query point f inside it. Remark again that for query point f in the area outside any event circles, the value of | A ( R f ) | is 2.
Alternatively, one may view Theorem 2 with the conic section interpretation as follows. The input polygon P induces n cutting planes, forming the straight skeleton and their corresponding faces when projected onto the x y -plane, and the point f is represented as a cone whose apex is at f.
The structural results in this section give another linear-time algorithm for finding safe regions, by first finding straight skeleton in O ( n ) -time using [17], then computing event circles, and finally using this information to find the set of edges contributing to the arcs of the safe region. However, we believe that the results in this section contribute mainly to the structural understanding of the problem and may serve as a guideline for tackling harder problems, especially the non-convex case of the problem. We discuss this in Section 5.1.

5. Conclusions and Open Problems

We present a linear-time algorithm for finding a safe region for folding each point on the boundary of a convex polygon P to point f P . We also give structural properties related to the number of arcs in a safe region for each focal point f, based on straight skeletons. We note the crucial roles of straight skeletons in our problem as well as other problems in origami design, as can be seen in [18]. An interesting direction for future work is to investigate problems with the similar structures while using straight skeletons as keys.
As mentioned in the introduction, we also hope that our results show interesting connections between the two problems posted by Akitaya et al. [4].

5.1. Remarks on Non-Convex Polygons

Results in Section 4 shed some light on non-convex cases. However, there are issues with the current approach. When dealing with non-convex polygons, there are two related concepts: straight skeletons [16] and medial axes [19] (see also [17,20]). For a given polygon, a medial axis contains points with equal distance to more than one points on δ P , while a straight skeleton is a Voronoi diagram where each site is a line extension of each edge. They are the same in convex polygons, however, in non-convex polygons, their medial axes contain curved segments.
In our application, since we can only fold every point on each polygon edge, but not points on the line extension of the edge, it makes sense to consider a medial axis. However, each face in the medial axis can be bounded by more than one polygon edges, breaking down one of our key assumptions. We leave the investigation of this approach to non-convex polygons as an important open question.

Author Contributions

Conceptualization, N.P. and J.F.; methodology, N.P. and J.F.; formal analysis, N.P. and J.F.; writing—original draft preparation, N.P.; writing—review and editing, J.F. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by the Thailand Research Fund grant number RSA-6180074.

Data Availability Statement

No new data were created or analyzed in this study. Data sharing is not applicable to this article.

Acknowledgments

The authors would like to thank organizers and participants of JCDCGGG 2022, especially Hugo Akitaya, for giving feedback on the presentation of this work and pointing out the important aspect. We also thank anonymous reviewers for insightful feedbacks.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Lang, R.J. Computational Origami: From Flapping Birds to Space Telescopes. In Proceedings of the Proceedings of the Twenty-Fifth Annual Symposium on Computational Geometry (SCG ’09), Aarhus, Denmark, 8–10 June 2009; Association for Computing Machinery: New York, NY, USA, 2009; pp. 159–162. [Google Scholar] [CrossRef]
  2. Demaine, E.D.; O’Rourke, J. Geometric Folding Algorithms: Linkages, Origami, Polyhedra; reprint ed.; Cambridge University Press: New York, NY, USA, 2008. [Google Scholar]
  3. Hull, T.C. Origametry: Mathematical Methods in Paper Folding; Cambridge University Press: Cambridge, UK, 2020. [Google Scholar]
  4. Akitaya, H.A.; Ballinger, B.; Demaine, E.D.; Hull, T.C.; Schmidt, C. Folding Points to a Point and Lines to a Line. In Proceedings of the 33rd Canadian Conference on Computational Geometry (CCCG 2021), Halifax, NS, Canada, 10–12 August 2021; Dalhousie University: Halifax, NS, Canada, 2021; pp. 271–278. [Google Scholar]
  5. Akitaya, H.A.; Demaine, E.D.; Ku, J.S. Simple Folding is Really Hard. J. Inf. Process. 2017, 25, 580–589. [Google Scholar] [CrossRef]
  6. Abel, Z.; Demaine, E.D.; Demaine, M.L.; Eppstein, D.; Lubiw, A.; Uehara, R. Flat foldings of plane graphs with prescribed angles and edge lengths. J. Comput. Geom. 2018, 9, 74–93. [Google Scholar] [CrossRef]
  7. Dambrogio, J.; Ghassaei, A.; Smith, D.; Jackson, H.; Demaine, M.; Davis, G.; Mills, D.; Ahrendt, R.; Akkerman, N.; van der Linden, D.; et al. Unlocking history through automated virtual unfolding of sealed documents imaged by X-ray microtomography. Nat. Commun. 2021, 12, 1184. [Google Scholar] [CrossRef] [PubMed]
  8. Felton, S.; Tolley, M.; Demaine, E.; Rus, D.; Wood, R. A method for building self-folding machines. Science 2014, 345, 644–646. [Google Scholar] [CrossRef] [PubMed]
  9. Hull, T.C. Solving cubics with creases: The work of Beloch and Lill. Am. Math. Mon. 2011, 118, 307–315. [Google Scholar] [CrossRef]
  10. Haga, K. Proposal of a term origamics for plastic origami-workless scientific origami. In Proceedings of the Second International Meeting of Origami Science and Scientific Origami, Otsu, Japan, 29 November–2 December 1994; ABSTRACT A-3. pp. 29–32. [Google Scholar]
  11. Haga, K. Origamics: Mathematical Explorations through Paper Folding; World Scientific: Singapore, 2008. [Google Scholar]
  12. Hull, T. Project Origami: Activities for Exploring Mathematics, 2nd ed.; A K Peters: Natick, MA, USA; CRC Press: Boca Raton, FL, USA, 2013. [Google Scholar]
  13. Aurenhammer, F.; Klein, R.; Lee, D.T. Voronoi Diagrams and Delaunay Triangulations; World Scientific: Singapore, 2013. [Google Scholar]
  14. Fortune, S. A sweepline algorithm for Voronoi diagrams. In Proceedings of the Second Annual Symposium on Computational Geometry, Yorktown Heights, NY, USA, 2–4 June 1986; pp. 313–322. [Google Scholar]
  15. Graham, R. An efficient algorith for determining the convex hull of a finite planar set. Inf. Process. Lett. 1972, 1, 132–133. [Google Scholar] [CrossRef]
  16. Aichholzer, O.; Aurenhammer, F. Straight skeletons for general polygonal figures in the plane. In Proceedings of the Computing and Combinatorics, Hong Kong, China, 17–19 June 1996; Cai, J.Y., Wong, C.K., Eds.; Springer: Berlin/Heidelberg, Germany, 1996; pp. 117–126. [Google Scholar]
  17. Chin, F.; Snoeyink, J.; Wang, C.A. Finding the Medial Axis of a Simple Polygon in Linear Time. Discret. Comput. Geom. 1999, 21, 405–420. [Google Scholar] [CrossRef]
  18. Lang, R.J. A computational algorithm for origami design. In Proceedings of the Twelfth Annual Symposium on Computational Geometry, Philadelphia, PA, USA, 24–26 May 1996; pp. 98–105. [Google Scholar]
  19. Blum, H. A transformation for extracting new descriptors of shape. In Models for Perception of Speech and Visual Form; Wathen-Dunn, W., Ed.; MIT Press: Cambridge, MA, USA, 1967. [Google Scholar]
  20. Attali, D.; Boissonnat, J.D.; Edelsbrunner, H. Stability and Computation of Medial Axes—A State-of-the-Art Report. In Mathematical Foundations of Scientific Visualization, Computer Graphics, and Massive Data Exploration; Springer: Berlin/Heidelberg, Germany, 2009; pp. 109–125. [Google Scholar] [CrossRef]
Figure 1. The problem of folding every point on the boundary of a polygon P to a point f. (a) Sample creases from points on edge v 2 v 3 ¯ ; (b) The safe region R.
Figure 1. The problem of folding every point on the boundary of a polygon P to a point f. (a) Sample creases from points on edge v 2 v 3 ¯ ; (b) The safe region R.
Algorithms 16 00281 g001
Figure 2. Comparison of the settings of the problem considered in this paper with that of [4]. (a) Corner folding in [4]; (b) Boundary folding in our paper.
Figure 2. Comparison of the settings of the problem considered in this paper with that of [4]. (a) Corner folding in [4]; (b) Boundary folding in our paper.
Algorithms 16 00281 g002
Figure 3. Fold-and-unfold points on a line to a fixed point multiple times, creating an envelope of a parabola.
Figure 3. Fold-and-unfold points on a line to a fixed point multiple times, creating an envelope of a parabola.
Algorithms 16 00281 g003
Figure 4. Interpretation of a parabola as a projection of a conic section. (a) Mapping a tilted parabola to the x y -plane; (b) Projection of a parabola on the x y -plane; (c) Two cutting planes; (d) Angle bisector and two intersections.
Figure 4. Interpretation of a parabola as a projection of a conic section. (a) Mapping a tilted parabola to the x y -plane; (b) Projection of a parabola on the x y -plane; (c) Two cutting planes; (d) Angle bisector and two intersections.
Algorithms 16 00281 g004
Figure 5. Arc decomposition of a parabola.
Figure 5. Arc decomposition of a parabola.
Algorithms 16 00281 g005
Figure 6. Three cases of adding parabola p i to the partial safe region R i 1 . (a) Case 1: p i does not change the region. (b) Case 2: p i clips the region. (c) Case 3: p i eclipses some parabola.
Figure 6. Three cases of adding parabola p i to the partial safe region R i 1 . (a) Case 1: p i does not change the region. (b) Case 2: p i clips the region. (c) Case 3: p i eclipses some parabola.
Algorithms 16 00281 g006
Figure 7. Proof of Lemma 4.
Figure 7. Proof of Lemma 4.
Algorithms 16 00281 g007
Figure 8. Safe regions with 2 and 3 parabola arcs. (a) Safe regions with query points f 2 and f 3 ; (b) An event circle determines the numbers of arcs.
Figure 8. Safe regions with 2 and 3 parabola arcs. (a) Safe regions with query points f 2 and f 3 ; (b) An event circle determines the numbers of arcs.
Algorithms 16 00281 g008
Figure 9. The straight skeleton of polygon P, with each face colored differently. Points c 1 , , c 6 are event points.
Figure 9. The straight skeleton of polygon P, with each face colored differently. Points c 1 , , c 6 are event points.
Algorithms 16 00281 g009
Figure 10. Intersections of event circles from the straight skeleton determine | A ( R f ) | .
Figure 10. Intersections of event circles from the straight skeleton determine | A ( R f ) | .
Algorithms 16 00281 g010
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Phetmak, N.; Fakcharoenphol, J. Folding Every Point on a Polygon Boundary to a Point. Algorithms 2023, 16, 281. https://doi.org/10.3390/a16060281

AMA Style

Phetmak N, Fakcharoenphol J. Folding Every Point on a Polygon Boundary to a Point. Algorithms. 2023; 16(6):281. https://doi.org/10.3390/a16060281

Chicago/Turabian Style

Phetmak, Nattawut, and Jittat Fakcharoenphol. 2023. "Folding Every Point on a Polygon Boundary to a Point" Algorithms 16, no. 6: 281. https://doi.org/10.3390/a16060281

APA Style

Phetmak, N., & Fakcharoenphol, J. (2023). Folding Every Point on a Polygon Boundary to a Point. Algorithms, 16(6), 281. https://doi.org/10.3390/a16060281

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop