Modeling Origami for Computational Construction ... - Semantic Scholar

4 downloads 20979 Views 218KB Size Report
Caltech, Pasadena CA. 9. J. Mitani and H. Suzuki. Modeling and rendering for understanding the confor- mation of origami. In Transactions of Information ...
Modeling Origami for Computational Construction and Beyond Tetsuo Ida, Hidekazu Takahashi, Mircea Marin, and Fadoua Ghourabi Department of Computer Science, University of Tsukuba, Tsukuba 305-8573, Japan {ida, hidekazu, mmarin, ghourabi}@score.cs.tsukuba.ac.jp

Abstract. Computational origami is the computer assisted study of origami as a branch of science of shapes. The origami construction is a countably finite sequence of fold steps, each consisting in folding along a line. In this paper, we formalize origami construction. We model origami paper by a set of faces over which we specify relations of overlay and adjacency. A fold line is determined by a specific fold method. After folding along the fold line, the structure of origami is transformed; some faces are divided and moved, new faces are created and therefore the relations over the faces change. We give a formal method to construct the model origami. The model furthermore induces a graph of layers of faces. We give two origami examples as the application of our model. They exhibit non-trivial aspects of origami which are revealed only by formal modeling. The model is the abstraction of the implemented core of the system of computational origami called Eos (E-origami system).

1

Introduction

Origami is a discipline of a new kind of science of shapes as well as old traditional art of paper folding. It provides the methodology of constructing a geometrical object with a piece of paper only by means of folding. The word “origami”, now internationally accepted terminology, is originally a composite Japanese word consisting of the word “ori”, meaning fold, and “gami”, meaning paper. We will use the word origami in the following multiple senses: as the discipline of a branch of geometry (just as mentioned above), as a piece of paper, and as a shape constructed by the origami methodology. In this paper we will formalize origami, so that (i) we can reason about origami as a mathematical object and (ii) we can construct an origami by a formal method, for example, by a computer program. We have been developing a programming environment for computational origami called Eos (E-origami system), in which we construct origami’s on the computer and reason about the properties of origami’s [7]. The work presented in this paper is an attempt to abstract the implemented core of Eos. The rest of the paper is organized as follows. In Section 2, we give basic notions and notations that will be needed to describe our model. In Section 3 we formalize the operation fold, which forms the central notion of origami. Section

4 is devoted to the modeling of the face overlay relation. In Section 5, we model the origami construction itself. In Section 6, we give two examples to which our modeling is applied. In Section 7, we summarize our work and relate it to other research works.

2

Basic Concepts

We begin by giving the basic mathematical notations that we will use in this paper. A binary relation R on A is written as a R b or (a, b) ∈ R for a, b ∈ A. When R is a function, we write R(a) = b. When a function is associated with a strong operational semantics (of daily life), we may call it an operator. The reflexive transitive closure of R is denoted by R∗ . A point is the basic object we use without definition. We denote points by P1 , . . . , Pn . By Pi,j , where i 6 j, we denote the sequence Pi , ..., Pj of points. When i = 1, we omit i and write Pj . By h Pn i , we denote several geometric objects that are the ingredients of origami. A ray, i.e. a directed line segment, is represented by a structure h P1 , P2 i , where P1 and P2 are the points that the line passes through. A ray is also denoted −−−→ by P1 P2 . An n(n > 3)-gon, i.e. a simple n-edge polygon (polygon consisting of n edges none of which intersects), is represented by a structure h P1 , . . . , Pn i made of a sequence of distinct points P1 , . . . , Pn , with the following property: h P1 , . . . , Pn i and its cyclic permutation h P1+k , . . . , Pn+k i for arbitrary k > 1 are the same1 . Definition 1 (Face). A basic ingredient of an origami is a face. A face is a geometric object whose shape is a convex n-gon with orientation. It is represented by face[hhPn i ]. Definition 2 (Face Orientation). Let f be face[hhP1 , P2 , P3 , . . . , Pn i ]. We define the orientation of face f as the orientation of the polygon h P1 , P2 , P3 , . . . , Pn i . The orientation ω of face[hhP1 , P2 , P3 , . . . , Pn i ] is determined by the distinct points P1 (x1 , y1 ), P2 (x2 , y2 ) and P3 (x3 , y3 ) that are vertices of the n-gon, and is given by: ¯ ¯ ¯ 1 1 1¯ ¯ ¯ ω(face[hhP1 , P2 , P3 , . . . , Pn i ]) = Sign ¯¯ x1 x2 x3 ¯¯ ¯ y1 y2 y3 ¯ Face f is up if ω(f ) = 1, and down if ω(f ) = −1. In other words, when the vertices P1 , P2 , P3 , . . . , Pn of the face f are arranged counter clockwise, then f is up. Otherwise it is down. Definition 3 (Face Rotation). For a point P , ρθr (P ) is the rotation of P by an angle θ along a ray r. ρθr is extended to a face. Namely, if f = face[hhP1 , . . . , Pn i ] then ρθr (f ) = face[hhρθr (P1 ), . . . , ρθr (Pn )ii]. 1

The index addition is performed in modulo the number of elements of the sequence.

2

Definition 4 (Face Connectivity). Let Π be the set of faces. Let A be the mapping Π → 2Π called adjacency mapping defined as follows. For any face f = face[hh. . . , Pi , Pi+1 , . . .ii], we define A(f ) = {g ∈ Π | g = face[hh. . . , Pi+1 , Pi , . . .ii]}. A face g ∈ Π is called adjacent to f , written as g ∼ f , if g ∈ A(f ). We assume that ∼ is symmetric. We define g ≈ f iff f and g are of the same orientation and f ∼ g. Faces f and g are called overlapping if f ◦ ∩ g ◦ 6= ∅, where f ◦ denotes the interior of n-gon of the face f . The faces are created only by means of repeated folds of a single piece of paper. The faces are inter-related and form a stack. The stack of faces exhibits a remarkable shape as it is shown in Fig. 9. From the shapes in Figs. 8 and 9, we see that an origami is a set of faces together with overlay relation and adjacency mapping. Definition 5 (Abstract Origami). An abstract origami is a structure (Π, Â, A), where Π is the set of faces, Â is an overlay relation over Π and A is an adjacency mapping from Π to 2Π . We call the abstract origami simply an origami. Example 1 An initial origami O0 (Π, Â, A) is shown in Fig. 1. Π = {h1 }, where h1 = face[hhA, B, C, Dii], Â= ∅, and A(h1 ) = ∅. The edges AB, BC, CD and DA border with no face. Hence, we have A(h1 ) = ∅.

D

C

h1

A

B

Fig. 1. Initial Origami

3 3.1

Formalization of Fold Fold Algorithm

Origami construction proceeds stepwise. We start origami construction with an initial origami (i = 0) and perform folds repeatedly until we obtain a desired 3

shape. Suppose that we are at the beginning of step i of the construction, having an origami Oi−1 (Πi−1 , Âi−1 , Ai−1 ). We make the next fold and obtain the next origami Oi (Πi , Âi , Ai ). At construction step i, we perform the following tasks in sequence: (F-1) Choose a fold method. (F-2) Obtain a fold line l according to the fold method. (F-3) Specify the set F of the faces known to be affected by the fold and the ray r obtained from l. (F-4) Compute the set G of all the faces that are affected by the fold. (F-5) Divide the faces by l and classify all the obtained faces into “to be moved” or “to be non-moved”. (F-6) Rotate the classified faces in “to be moved” along r. (F-7) Compute the overlay relation and adjacency mapping. We have some comments due in the above steps: – Steps (F-1) and (F-2) can be realized through Huzita’s axioms [4]. His axioms can be described concisely in the language of many-sorted first-order predicate logic [3]. We can find the fold line at Step (F-2) by solving a set of polynomial equalities transformed algebraically from the axioms. – The set F and r are specified by origamists. At step (F-4) we compute the set G (⊃ F ) of all the faces that are actually affected by the fold based on F. – The classification at (F-5) involves four kinds of faces that will be discussed in details in Sect. 3.3. – The rotation operator is applied to the faces that have to be moved. Hence, we compute Πi of Oi . – Finally, Âi and Ai are computed and thus we define all the elements of the structure of Oi . Eos implements this algorithm using Mathematica [11]. Eos provides Fold function as user interface. By supplying the appropriate parameters of Fold, we can choose the fold method, the type of fold (valley or mountain fold) and the set F of faces known to be affected. Refer to [5] for details. 3.2

Face Division

Consider a division of a face f = face[hhP1 , P2 , P3 , . . . , Pn i ] with a fold line l. We distinguish four cases of geometrical configurations; (a) The line l intersects with the face f at two distinct points on the boundary of f . (b) The line l overlaps with some edge Pi Pi+1 . (c) The line l passes through only one vertex Pi . (d) The line l does not intersect with any of the edges of the face f . 4

Note that since faces are convex simple polygons, the above four cases are exhaustive. In case (a) the face f will be divided into two faces f1 and f2 . Let δr be an operator to divide a face by the fold ray r obtained from l. The result of the operation is a pair of faces hf1 , f2 i, where f1 is to be moved after the division. The f1 and f2 are called the siblings of f . In other words, f is the parent of f1 and f2 . The faces f1 and f2 are detailed as follows. Let X and Y are the intersections of l and the edges of the face f . Then, f1 and f2 can be written as f1 = face[hhY, X, . . .ii] and f2 = face[hhX, Y, . . .ii], such that ω(hhP1 , P2 , P3 , . . . , Pn i ) = ω(hhY, X, . . . , i ) = ω(hhX, Y, . . . , i ). This means that the intersections X and Y are arranged such that the new face −−→ to the right of ray XY is to be moved. −−−−→ We extend δr to other cases. In case (b), the ray r overlaps with Pi Pi+1 . In this case, δr (f ) = hf, h Pi , Pi+1 i i or hhhPi+1 , Pi i , f i. In case (c), we have δr (f ) = hf, h Pi i i or hhhPi i , f i. In case (d), one of f1 and f2 is immaterial. We denote the immaterial one by ε, meaning an empty face. In the case that f1 is ε, no move will take place. Only when both f1 and f2 are faces, we say that face f is divided into f1 and f2 by r. Step (F-5) is performed by applying δr to all the faces in G(⊂ Πi−1 ). We obtain the new set of faces Πi− , the set of all the faces after the division, but before the rotation. The set Πi− is passed to Step (F-6). Example 2 −−→ Figure 2 shows O1 = (Π1 , Â1 , A1 ) after folding along the ray XY . Π1 = {h2 , h3 }, where h2 = face[hhY, X, B, Cii] and h3 = face[hhX, Y, D, Aii], Â1 = {(h2 , h3 )}, and A1 (h2 ) = {h3 }, A1 (h3 ) = {h2 }. Note that the face h2 that we see in Fig. 2 is down-face and the face h3 is up-face. In order to show the orientation of the face, we use two hues. A light face is up and a dark one is down. 3.3

Face Classification

Suppose that we are at the beginning of step i of construction, having an origami Oi−1 (Πi−1 , Âi−1 , Ai−1 ). The most important notion here is the set of all affected faces G that is constructed using the relation immediately affected. Let us suppose that a face f is divided into two faces h and h0 and h is to be moved. A face g ∈ Πi−1 is affected by f iff it is adjacent to h or g and h are overlapping and g is above h. To be precise, we have the following definition. Definition 6 (Immediately Affected). Given f, g ∈ Πi−1 , we define a relation %i−1 on Πi−1 , called immediately affected. Namely, for faces f, g ∈ Πi−1 g %i−1 f 0

iff

∃h such that δr (f ) = hh, h i g ∈ Ai−1 (h) ∨ (g Âi−1 f ∧ h◦ ∩ g ◦ 6= ∅). Face g is called immediately affected by f . 5

C Y

D

h2

B

h3 A

X

Fig. 2. Faces after a fold

Given F, we construct the set G of all the faces that are affected by the fold as follows. (G-1) Extend the adjacency mapping Ai−1 in the following way: Let H = {h | hh, h0 i = δr (f ), f ∈ Πi−1 } . (a) Extend the domain of Ai−1 to Πi−1 ∪ H. (b) Define Ai−1 (h) for h ∈ H as follows. −→ (f ) = hh, h0 i, where h is a non-empty face Let f, g ∈ Πi−1 such that δ− XY and g ∈ Ai−1 (f ). Furthermore, let Eh and Eg be the sets of the edges of the polygons of the faces h and g, respectively. Then g ∈ Ai−1 (h) iff ∃s ∈ Eh \{Y X} and s0 ∈ Eg such that s is a part of s0 . (G-2) Using the extended Ai−1 , compute the set G as follows: G= ∪ {g | g %∗i−1 f } f ∈F

. (G-3) Complete the classification of the faces by specifying: NNi = Πi−1 \ G NMi = {f | hf, εi = δr (g), g ∈ G} D = ∪ {f1 , f2 | r divides f into f1 and f2 } f ∈G

The set D is decomposed into the following disjoint sets. DMi = {h | hh, h0 i = δr (f ), f ∈ D} DNi = {h | hh0 , hi = δr (f ), f ∈ D} Let Mi be the set of the faces that are moved, i.e. Mi = NMi ∪ DMi and Ni be the set of the faces that are non-moved, i.e. Ni = NNi ∪ DNi . (G-4) Finally, obtain Πi , the set of all the faces of the origami at step i. Πi = {ρθr (f ) | f ∈ Mi } ∪ Ni 6

Example 3

F=8f,g,h< f2

f1

h2

h1

F=8f