1. INTRODUCTION
The notion of geometric monotonicity that has arised in the theoretical area of computational geometry [3] is closely related with 3D manufacturability problems, while the problems of machinability and demouldability in application field areas [4], [5] have been formulated being based on the notion of surface visibility.
In this paper, we consider efficient and robust implementation for computing the monotone directions of a polyhedron, based on the characterization [1] of polyhedron monotonicities categorized as [3].
Similarly to the formulations of surface machinability [5], the polyhedron monotonicities have been characterized as geometric problems to find great circles separating or intersecting a set of spherical polygons that are derived from sub-surfaces of the polyhedron and its convex hull [1]. Consequently, all directions for the three monotonicity can be constructed in O(nk logk + nlogn) time, where n and k are the numbers of all faces and all sub-surfaces, respectively.
This paper suggests efficient algorithms for finding a centroid of all monotone directions in a polyhedron, which will be called the monotone centroid in short. The centroid in a set of directions is defined so as to maximize the minimum distance between the centroid and all directions in the set. This centroid is very useful for optimizing directions in many manufacturing processes; minimize the cusp height in machining, minimize the frictional forces in assembling and moulding, and so on. Furthermore, our efficient methods or approximating the centroid can also replace the feasibility test for the next designing processes or before applying more complicated algorithms for constructing all solutions.
The strongly- and directionally-monotone centroids will be obtained by simply applying a discrete algorithm [2] that finds maximum intersection of dual spherical polygons for approximating centroids among the poles of great circles intersecting a set of spherical polygons. The weakly-monotone centroid will be effectively approximated by intersecting other spherical objects called great bands instead of non-convex spherical regions. Our approximation can be efficiently realized with linear time operations such as the smallest enclosing sphere [6] and linear programming [7]-[9].
2. NOTATION AND DEFINITIONS
The space on the boundary of the unit sphere centered at origin in three dimension is described as S2 = {p | ∥p∥= 1}. A point p on S2 is a unit vector in three dimensional Euclidean space E3.
As illustrated in Fig. 1, we define geometric primitives on S2, which are described by the set of points with the operation of inner product.
Fig. 1.Geometric Primitives on S2
A circle on S2 is determined by the intersection of the unit sphere with a plane. A part of a circle is called an arc (edge). If the plane contains the origin, the intersection is called a great circle; otherwise, it is called a small circle. The circle is denoted by Cr(p,θ) = {x | p・x = cosθ, and p, x ∈ S2}. We call p the pole of the circle, and θ the size of the circle. A great circle will be shortly written by GC(p). It is obvious that Cr(p,θ) = Cr(−p,π − θ) and GC(p) = GC(−p).
We define two regions bounded by circles on S2: hemisphere denoted by HS(p) = {x | p・x ≥ 0, and p, x ∈ S2}, and great band denoted by GB(p,θU,θL) = {x | cosθL ≤ p・x ≤ cosθU, and p, x ∈ S2}, where and . A great circle can be included in a great band, while a band excluding any great circle is called the small band.
A (spherical) polygon is another region on S2, which is bounded by great arcs; a convex polygon is also the intersection of hemispheres.
As illustrated in Fig. 2, let U = {u1,...,un} be the set of outward unit normal vectors to a surface S, which is called the Gaussian map of S. The set of inward unit normal to S will be represented with −U. The visibility map of S, which is the set of directions visible to S, can be computed by ∩ni=1 HS(ui).
Fig. 2.Gaussian Polygon and Its Dual Visibility Polygon
The spherical convex hulls of the Gaussian map and visibility map of S will be, respectively, denoted by GCH(U) and VCH(U), or by GCH(S) and VCH(S) for convenience. In short, they will be, respectively, called (positive) Gaussian polygon and (positive) visibility polygon in this paper. GCH(−U) and VCH(−U) or GCH(−S) and VCH(−S) are, respectively, negative Gaussian and visibility polygons. The two spherical polygons of Gaussian and visibility are dual to each other; a vertex of GCH(U) for all corresponds to an edge (arc) in VCH(U), and vice versa [10].
As illustrated in Fig. 3, we define the sub-surfaces of a polyhedron with pockets {Pi}, lids {Li}, sub-pockets {SPi}, and sub-lids {SLi}, which are used for characterizing the monotone directions of the polyhedron.
Fig. 3.Sub-pockets and Sub-lids of Polyhedrons
3. APPROXIMATING STRONGLY- AND DIRECTIONALLY-MONOTONE CENTROIDS IN A POLYHEDRON
The strongly- and directionally-monotone directions can be established by finding great circles separating a set of Gaussian polygons of pockets {Pi} and lids {Li} (sub-pockets {SPi}) of a polyhedron as follows.
Lemma 1. A polyhedron P is strongly-monotone in a direction d, if and only if GC(d) separates GCH(Pi ∪−Li) for all i = 1...n [1].
Lemma 2. A polyhedron P is directionally-monotone in a direction d, if and only if GC(d) separates GCH(SPi) for all i = 1,...,n [1].
All poles of great circles separating a set of Gaussian polygons {GCH1,...,GCHn} can be found by partitioning the unit sphere S2 with the set of their dual positive or negative visibility polygons {VCH1,...,VCHn, −VCH1,..., −VCHn}. If a partitioned face is contained in VCHi or −VCHi for each i = 1,...,n, the face represents the set of poles of great circles separating {GCH1,...,GCHn} [4].
In order to compute great circles separating Gaussian polygons derived from sub-surfaces of a polyhedron, we are going to use an efficient algorithm maximizing the intersection number of visibility polygons on S2.
For maximizing the number of intersected visibility polygons, motivated from the machinability problem for setting models and cutting tools, we have presented a novel method [2] called edge-based partition of S2 with great circles, which is robust to avoid topological errors and handle geometric degeneracies as well as practical to be implemented in an efficient way. As shown in Fig. 4, the ownership number of each partitioned edge is counted by incrementally partitioning the visibility polygons. The final ownership numbers of all partitioned edges are scanned for finding the maximum ownership number, and then the edges with the maximum number are gathered. Using the convexity of the intersected solution regions bounded by the gathered edges, the centroids of the solution regions can be obtained in linear time with a discrete method without constructing the solution boundary.
Fig. 4.Counting Ownership Numbers of Edges Partitioned by Visibility Polygons
We can observe the following property in the problem of finding the ownership number of edges partitioned by the set of visibility polygons.
Property 1. A set {GCH1,...,GCHn} is separated by a great circle, if and only if the maximum ownership number of edges partitioned with {VCH1,...,VCHn, −VCH1,..., −VCHn} is just n. (The maximum ownership number is at most n, since VCHi∩−VCHi = Ø for any i = 1,...,n).
Our problem of separating Gaussian polygons is a special case of the maximization problem finding a region intersected by all of their dual (positive or negative) visibility polygons; in other words, we check the maximum ownership number is the same as the total number of Gaussian polygons. It becomes possible to construct indirect steps for computing the strongly and directionally-monotone centroids in a polyhedron; given a set of Gaussian polygons of sub-surfaces (in Lemma 1 and 2) of a polyhedron, we first compute the region that is maximally intersected by their dual visibility polygons, and then determine the centroid of the completed region only if the ownership number of the region is the same as to the total number of Gaussian polygon.
Consequently, the strongly-monotone centroids of a polyhedron can be obtained by simply applying the previous results of [1], [2] as the following algorithm. The directionally-monotone centroids can be similarly computed.
procedure Strongly Monotone Centroid
input: the pockets {Pi} and the lids {Li} of P
output: the strongly-monotone centroids of P
endProcedure Strongly Monotone Centroid
4. APPROXIMATING WEAKLY-MONOTONE CENTROIDS IN A POLYHEDRON
Weakly-monotone directions can be established by finding great circles intersecting with visibility polygons of sub-pockets {SPi} and sub-lids {SLi} of a polyhedron as follows.
Lemma 3. A polyhedron P is weakly-monotone in a direction d, if and only if GC(d) intersects VCH(SPi∪−SLFij) for all i = 1,...,n1, j = 1,...,n2, where SLFij is each face ∈ SLi [1].
We will characterize a region representing the set of poles of great circles intersecting a visibility polygon by using its dual positive and negative Gaussian polygons. Property 2 leads to that the set of poles of great circles for this intersection is the complement of its dual positive and negative Gaussian polygons, as illustrated in Fig. 5.
Fig.5.Complement of Two Dual Gaussian Polygons for a Visibility Polygon
Property 2. Intersecting a visibility polygon VCH by great circles is complementary to separating (not intersecting) it by great circles, and the set of poles of great circles separating VCH is the dual positive and negative Gaussian polygons GCH∪−GCH.
In Section 3 approximating the strongly- and directionally-monotone centroids of a polyhedron, the great circles separating Gaussian polygons of subsurface of a polyhedron could be efficiently computed with the intersection of their dual visibility polygons by using the convexity. Unfortunately, however, the complement of two positive and negative Gaussian polygons, which can be described as ~(GCH∪−GCH), is a non-convex region. In any space, it is very difficult to compute the intersection of non-convex objects, compared to convex objects.
We develop an approximation method to use primitive objects bounding an original object in order to avoid complicated operations for non-convex objects, as illustrated in Fig. 6. Two small circles can bound a polygon on S2; in-circle and circum-circle that are, respectively, the largest circle within the polygon and the smallest circle enclosing the polygon.
Fig. 6.Great Bands Bounded by Each Pair of In-circles and Circum-circles of Gaussian Polygons
When we replace a polygon on S2 with its bounding circles, the non-convex region that is the complement of a pair of two positive and negative Gaussian polygons is approximated by a primitive object called the great band. Great bands are well-known geometric primitives on S2, which can be often found in 4- and 5-axis machinability problems. The great band approximated by the in-circles can be used for the feasibility test since it is the necessary condition for the original solutions, while another great band approximated by the circum-circles is a sufficient condition for quickly finding the centroid among solutions.
Let Cr(pijI ,θijI) and Cr(pCij,θCij) be, respectively, the incircle and the circum-circle of GCH(SPi∪−SLFij) for all i, j in Lemma 3, then we can summarize our approximation method as follows.
Property 3. ⊂ the set of weakly-monotone directions
Let’s consider the approximately reduced problem intersecting great bands under the extension of the geometric space from the spherical space S2 space into three-dimensional Euclidean space E3. Since the two planes passing small circles bounding a great band GB(p,θU,θL) can be, respectively, expressed by {x | (x - cosθU p)・p = 0, x ∈ E3} and {x | (x+cosθLp)・p = 0, x ∈ E3}, the space volume bounded by the two planes in E3 can be represented with Definition 1. Then, a great band is the intersection between this space volume and S2; GB(p,θU,θL) = SV(p,θU,θL)∩S2.
Definition 1. SV(p,θU,θL) = {x | (x - cosθU p)・p < 0 and (x + cosθLp)・p > 0, x ∈ E3}
In order to check the intersection of a set of great bands, we observe an important property as follows.
Property 4. Given a set of great bands {GB(p1,θ1U,θ1L,...,GB(pn,θnU,θnL)}, = Ø, if and only if is completely enclosed by S2.
In order to check the feasibility without constructing all boundary of , we find its extreme point with a maximizing problem such as Formulation 1. After determining the extreme point x* of , a simple test is performed whether or not ∥x*∥ < 1. Even though Formulation 1 has the form of a quadratic objective function different from general linear programming (LP) formulations, it can be solved in linear time by an efficient LP technique since its objective function is convex [8].
Formulation 1. Maximize ∥x2∥subject to SV(pi,θiU,θiL), for all i = 1,...,n.
Clearly, the centroid of , which maximizes the minimum distance between the centroid and all points in the solution, is the center of circle inscribing the region of , the boundary of which is composed of the parts of small circles {Cr(p1,θ1U),...,Cr(pn,θnU)} and {Cr(p1,θ1L),...,Cr(pn,θnL)}. In other words, a weakly-monotone centroid can be obtained by computing the center of an inscribing circle similarly to a strongly-monotone centroid in Section 3; the difference is that the one is bounded by small circles and the other by great circles. The methods to compute the centers of inscribing circles within small and great circle boundaries are quite different from each other.
The center of circle inscribing a convex region bounded by great circles could be obtained in linear time with a discrete method of edge-based partition [2]. In the case of the region bounded by small circles, we prove that the solution of Formulation 1 is just the centroid of as.
Lemma 4. The unit vector of a solution x* maximizing ∥x2∥ subject to SV(pi,θiU,θiL) for all i = 1,...,n is the centroid of , if ∥x2ǁ > 1.
Proof. As illustrated in Fig. 7, consider a cross-section of a plane passing through three points: the origin, the center of a circle ca and the solution x*. Clearly, the arc length l, which is just the minimum distance between and ca, becomes longer as the x goes farther from the origin. In other words, the extreme point x* determines the centroid maximizing the minimum distance between the centroid and all small circles bounding the solution region. (Q.E.D.)
Fig. 7.Top View and Cross-section View about the Extreme Point of a Solution Space
By combining Lemma 4 and the LP technique [8] for quadratic objective function, we can get a result about the centroid in the intersection of great bands as follows.
Theorem 1. Given a set of great bands {GB1,...,GBn} on the unit sphere S2, the centroid of the intersection can be computed in O(n) time.
The next discussion is how to construct the two bounding circles: in-circle and circum-circle. The circum-circle sometimes called the smallest enclosing circle in two dimensional space can be constructed with a simpler formulation in an efficient time O(n) [6]. The circumcircle bounding a spherical polygon on S2 can be obtained by constructing the smallest sphere enclosing a set of points in 3D as Lemma 5. This paper presents more detailed theoretical foundation for this technique that was used in [2] without proof.
Lemma 5. The intersection of S2 and the smallest sphere s*enclosing the vertices of a polygon on S2 is the circum-circle of the spherical polygon.
Proof. Let s* be the smallest sphere enclosing the vertices of a spherical polygon in the three-dimensional space, as illustrated in Fig. 8. It can be shown that the intersection of s* and S2 is a great circle of s* by a simple contradiction; if we assume the circle c generated by this intersection of the two spheres is not a great circle of s*, there is another enclosing sphere smaller than s*. As well as this great circle c of s* circumscribes the vertices of the spherical polygon on S2, the center of c on S2 and the center of s* in E3 have the same direction from the origin in E3. (Q.E.D.)
Fig. 8.The Smallest Sphere Enclosing a Set of Points
Finding the three edges of a convex polygon in two-dimensional space for its in-circle is a combinatorial problem. Up to nC3 circles may be tangential to three of n edges in the polygon. Even though there is an optimal O(nlogn) algorithm [11] for this problem that is sometimes called the largest empty circle, the direct investigation takes costly implementation such as Voronoi diagrams. A novel result [12] of the relation between the in-circle and the circum-circle of a polygon on S2 has been presented as.
Lemma 6. If Cr(pC,θC) and Cr(pI,θI) are, respectively, the circum-circle and the in-circle of a polygon and its dual polygon on S2, then pC = pI and , and vice versa [12].
By combining Lemma 5, 6 and the LP technique [6] for the smallest enclosing sphere, we can get a surprising result for determining the in-circle of a polygon on S2 as follows.
Theorem 2. The center and the size of the circle inscribing a polygon on S2 can be determined in O(n) time. (Note that it takes O(nlogn) for a polygon in E2.)
Finally, we can provide an efficient algorithm for obtaining the weakly-monotone centroid with sub-pockets and sub-lids of a polyhedron as follows.
procedure Weakly Monotone Centroid
input : the sub-pockets {SPi} and the sub-lids {SLj} of P
output :the weakly-monotone centroid of P
endProcedure Weakly Monotone Centroid
Different from the method for obtaining the strongly-and directionally-monotone centroids with original spherical polygons, the above procedure uses the small circles bounding the spherical polygons internally and externally. The following statement can be attached after the step 7 for the complete computation instead of our approximation. Our algorithm is just to avoid this full partitioning, which requires very complicated computations with O(nk logk+nlogn) time complexity and is only theoretical until now as far as the authors know.
The best advantage of our algorithm is easy and efficient to implement with linear time complexity since the robust and fast codes of which are available [13]-[16]. Furthermore, the steps 1-5 can be used when the feasibility should be quickly checked with light computations.
5. CONCLUSION
In this paper, we revisited the problems of determining the monotone directions of a polyhedron, which have been characterized with the sub-surfaces of the polyhedron [1], in order to find the centroid directions without constructing the boundary of all solutions.
The strongly- and directionally-monotone centroids of a polyhedron are shown to be obtained by simply applying the previous result [2] maximizing the intersection number of the positive and negative visibility polygons of sub-surfaces of the polyhedron.
The weakly-monotone directions of a polyhedron are reinterpreted as the intersection of a complementary set of the positive and negative Gaussian polygons of sub-surfaces of the polyhedron. In order to avoid the computational complexity of non-convex regions, we generate two bounding circles: the in-circle and circum-circle of each Gaussian polygon; the complement for a pair of two positive and negative Gaussian polygons is approximated by a geometric primitive great band that can be treated more efficiently.
This paper presents an efficient algorithm for approximating the weakly-monotone centroid with the set of great bands that are often found in 3D manufacturability problems based on two theoretical results: Theorem 1 and 2.
참고문헌
- J. Ha and K. Yoo, “Characterization of polyhedron monotonicity,” Computer-Aided Design, vol. 38, no. 1, 2006, pp. 48-54. https://doi.org/10.1016/j.cad.2005.06.003
- J. Ha and K. Yoo, “Approximating centroids for the maximum intersection of spherical polygons,” Computer-Aided Design, vol. 37, no. 8, 2005, pp. 783-790. https://doi.org/10.1016/j.cad.2004.09.007
- G. Toussaint, Computational Geometry, Elsevier Science, 1985.
- S. C. L. L. Chen and T. Woo, “Separating and intersecting spherical polygons: computing machinability on three- four- and five-axis numerically controlled machines,” ACM Tr. on Graphics, vol. 12, no. 4, 1993, pp. 305-326. https://doi.org/10.1145/159730.159732
- Lin-Lin Chen, Shuo-Yan Chou, and Tony C. Woo, “Parting directions for mould and die design,” Computer-Aided Design, vol. 25, no. 12, 1993, pp. 762-768. https://doi.org/10.1016/0010-4485(93)90103-U
- E. Welzel, "Smallest enclosing disks (balls and ellipsoids)," New Results and New Trends in Computer Science, Springer Lecture Notes in Computer Science, vol. 555, 1991, pp. 359-370.
- N. Megiddo, “Linear programming in linear time when the dimension is fixed,” Journal of ACM, vol. 31, no. 1, 1984, pp. 114-127. https://doi.org/10.1145/2422.322418
- M. Dyer, “Linear time algorithms for two- and three-variable linear programs,” SIAM. Journal on Computing, vol. 13, no. 1, 1984, pp. 31-45. https://doi.org/10.1137/0213003
- R. Seidel, “Small-dimensional linear programming and convex hulls made easy,” Discrete Computing Geometry, vol. 6, no. 5, 1991, pp. 423-434. https://doi.org/10.1007/BF02574699
- T. Woo, “Visibility maps and spherical algorithms,” Computer Aided Design, vol. 26, no. 1, 1994, pp. 6-16. https://doi.org/10.1016/0010-4485(94)90003-5
- G. Toussaint, “Computing largest empty circles with location constraints,” International Journal of Computer and Information Sciences, vol. 12, no. 5, 1983, pp. 347-358. https://doi.org/10.1007/BF01008046
- J. G. Gan, T. C. Woo, and K. Tang, “Spherical maps: their construction, properties, and approximation,” ASME J. Mechanical Design, vol. 116, 1994, pp. 357-363. https://doi.org/10.1115/1.2919386
- N. Capens, an implementation of [6], http://www.flipcode.com/archives/smallest enclosing spheres.shtml
- CGAL, an implementation of [6], http://www.cgal.org/manual/latest/dochtml/cgalmanual/bounding volumes ref/class min _sphere of spheres d.html.
- M. Hohmeyer, an implementation of [9], http://www3.cs.stonybrook.edu/-algorith/implement/linprog/distrib/source.a.
- CGAL, an implementation of [9], http://www.cgal.org/manual/latest/doc html/cgal manual/qp solver/chapter main.html.