arxiv: v1 [cs.cg] 17 Sep 2013
|
|
- Dayna Fisher
- 6 years ago
- Views:
Transcription
1 Terrain Visibility with Multiple Viewpoints Ferran Hurtado Maarten Löffler Inês Matos Vera Sacristán Maria Saumell Rodrigo I. Silveira Frank Staals January 11, 2014 arxiv: v1 [cs.cg] 17 Sep 2013 Abstract We study the problem of visibility in polyhedral terrains in the presence of multiple viewpoints. We consider a triangulated terrain with m > 1 viewpoints (or guards) located on the terrain surface. A point on the terrain is considered visible if it has an unobstructed line of sight to at least one viewpoint. We study several natural and fundamental visibility structures: (1) the visibility map, which is a partition of the terrain into visible and invisible regions; (2) the colored visibility map, which is a partition of the terrain into regions whose points have exactly the same visible viewpoints; and (3) the Voronoi visibility map, which is a partition of the terrain into regions whose points have the same closest visible viewpoint. We study the complexity of each structure for both 1.5D and 2.5D terrains, and provide efficient algorithms to construct them. Our algorithm for the visibility map in 2.5D terrains improves on the only existing algorithm in this setting. To the best of our knowledge, the other structures have not been studied before. 1 Introduction Visibility is one of the most studied topics in computational geometry. Many different terms, like art-gallery problems, guarding, or visibility itself, have been used during the last three decades to refer to problems related to the question of whether two object are visible from each other, amidst a number of obstacles. In this paper we are interested in visibility on terrains. A 2.5D terrain is an xy-monotone polyhedral surface in R 3. We also study 1.5D terrains: x-monotone polygonal lines in R 2. The obstacles we consider are the terrain edges or triangles themselves. A fundamental aspect of visibility in terrains is the viewshed of a point (i.e. the viewpoint): the (maximal) regions of the terrain that the viewpoint can see (see Fig. 1). In a 1.5D terrain, the viewshed is almost equivalent to the visibility polygon of a viewpoint, since the terrain can be turned into a simple polygon by closing up the unbounded space above the terrain. Therefore well-known linear-time algorithms to construct visibility polygons can be applied (e.g. [18]). In 2.5D the viewshed is more complex. In an n-vertex terrain, the viewshed of a viewpoint can have Θ(n 2 ) complexity. The best algorithms known to compute it take O((n + k) log n log log n) time [24], and O((nα(n) + k) log n) time [19], where k is the size of the resulting viewshed, and α(n) is the extremely slowly growing inverse of the Ackermann Departament de Matemàtica Aplicada II, Universitat Politècnica de Catalunya, Barcelona, Spain, {ferran.hurtado,vera.sacristan,rodrigo.silveira}@upc.edu. Department of Information and Computing Sciences, Universiteit Utrecht, The Netherlands, {m.loffler,f.staals}@uu.nl. Dept. de Matemática & CIDMA, Universidade de Aveiro, Portugal, ipmatos@ua.pt. Département d Informatique, Université Libre de Bruxelles, Belgium, maria.saumell.m@gmail.com. Dept. de Matemática, Universidade de Aveiro, Portugal, rodrigo.silveira@ua.pt. 1
2 function. I/O-efficient versions of this problem for grid terrains have also been studied recently (e.g. [1, 14, 17]), as well as other terrain visibility structures like horizons and offsets [15]. While the computation of the viewshed from one viewpoint on a terrain has been thoroughly studied, it is surprising that a natural and important variant has been left open: What happens if instead of one single viewpoint, one has many, say m > 1, different viewpoints on the terrain? The common viewshed, or visibility map can then be defined as the regions of the terrain that can be seen from at least one viewpoint. Computing the viewshed from each single viewpoint and then taking the union of the m viewsheds is a straightforward solution, but it has a high running time that does not take the final size of the visibility map into account. Obtaining more efficient algorithms for this and other related problems is the main focus of this paper. To the best of our knowledge, there are no other studies in computational geometry on (the complexity of) the visibility map of multiple viewpoints. We are not aware of any work for 1.5D terrains, whereas for 2.5D terrains we can only mention the work by Coll et al. [12], who essentially overlay the m individual viewsheds without studying the complexity of the visibility map. This results in the very high running time of O(m 2 n 4 ). In addition, a few papers deal with the computation of viewsheds for multiple viewpoints for rasterized terrains [11, 12, 21]. We refer to the survey by De Floriani and Magillo [15] for an overview of terrain visibility from the Geographic Information Science perspective. We would like to highlight the fact that it is not due to its lack of interest that visibility from multiple viewpoints has been overlooked up to now. Visibility in 1.5D terrains has been thoroughly studied from related perspectives, and in particular the problem of placing a minimum number of viewpoints to cover a terrain has received a lot of attention (e.g. [4, 5, 9, 10, 16, 20, 23]). Their theoretical interest and the fact that 1.5D terrains already pose a difficult challenge are the main motivation behind our work in that dimension. Regarding 2.5D, the applications are too numerous to be detailed here, so we only present a few concrete examples. For instance, evaluating the effectiveness of a set of fire lookout towers [6], or identifying locations for placing wind turbines so they are not visible from sensitive sites like touristic points [22]. Finally, our results also apply to other contexts like sensor networks, in which wireless devices have to be placed on a terrain, and we have to measure the quality of the chosen device placement scheme [25]. Visibility Structures. We study three fundamental terrain visibility structures for multiple viewpoints, for 1.5D and 2.5D terrains. For all structures, we first study their complexity and then present algorithms to compute them. The structures studied are: (1) the visibility map (already mentioned); (2) the colored visibility map: a partition of the terrain into regions whose points have exactly the same visible viewpoints; (3) the Voronoi visibility map: a partition of the terrain into regions whose points have the same closest visible viewpoint. These structures are illustrated in Fig. 2. Next, we formalize these definitions. Problem Statement. A 2.5D terrain T consists of n vertices, O(n) edges, and O(n) faces. Let V (T ) denote the set of vertices, E(T ) the set of edges, and F (T ) the set of faces of T. A 1.5D terrain T consists of n vertices and n 1 edges. We again denote the vertices of T with V (T ) and the edges of T with E(T ). For any point p on the terrain T (either a 2.5D terrain or a 1.5D terrain), the viewshed of p on T, denoted by V T (p), is the maximal set of points on T that are visible from p. A point q is visible from p if and only if the line segment pq does not intersect any point strictly below the terrain surface (intuitively, this corresponds to placing the viewpoints some small ε > 0 above the terrain). Note that our definition of visibility is symmetric, and that viewpoints have unlimited sight (Section 4 discusses the situation of viewpoints with limited sight). The viewshed V T (P) of a set of viewpoints P is the set of points visible from at least one viewpoint in P, that 2
3 p 2 p 1 p 3 Figure 1: The viewsheds of three viewpoints on a 2.5D terrain. p 1 p 2 p 3 p 1 p 2 p 2 p 3 p 1 p 3 (a) (b) (c) Figure 2: The visibility map (a), the colored visibility map (b), and the Voronoi visibility map (c). is, V T (P) = p P V T (p). Given a set of viewpoints P, we define the Voronoi viewshed W T (p, P) of a viewpoint p P as the points in the viewshed of p that are closer to p than to any other viewpoint that can see them. More precisely, W T (p, P) = V T (p) {x x T closest T (x, P) = p}, where closest T (x, P) denotes the closest (in terms of the Euclidean distance) viewpoint in P that can see a point x on T. We can now formally define our visibility structures as follows. Definition 1. The visibility map Vis(T, P) is a subdivision of the terrain T into a visible region R V = V T (P) and an invisible region R I = T \ R V. Definition 2. The colored visibility map ColVis(T, P) is a subdivision of the terrain T into maximally connected regions R, each of which is covered by exactly the same subset of viewpoints P P. Each region R is a (maximally connected) subset of p P V T (p) and we have that R p P\P V T (p) =. Definition 3. The Voronoi visibility map VorVis(T, P) is a subdivision of the terrain T into maximally connected regions, each of which is a subset of the Voronoi viewshed W T (p, P) of a viewpoint p P. We denote the size, that is, the total complexity of all its regions, of Vis(T, P), ColVis(T, P), and VorVis(T, P), by k, k c, and k v, respectively. In the remainder of the paper we assume that P is a set of m viewpoints on the terrain surface. For simplicity, we assume that the viewpoints are placed on terrain vertices, thus m n. We consider this a reasonable assumption, since in the applications that motivate this work the number of terrain vertices is considerably larger than the number of viewpoints. Results. We present a comprehensive study of the visibility structures defined above. We analyze the complexity of all the structures and propose algorithms to compute them. Our results are summarized in Table 1. Regarding 1.5D terrains, all our algorithms avoid computing individual viewsheds. Vis(T, P) is computed in nearly optimal running time, while the algorithms for ColVis(T, P) and VorVis(T, P) are output-sensitive. Obtaining the latter algorithm, whose running time depends on k c and k v, was surprisingly challenging, and required using several subtle geometric properties of the problem. As for 2.5D terrains, we prove with a careful analysis interesting on its own that the maximum complexity of Vis(T, P) and ColVis(T, P) is much less than the overlay of the 3
4 1.5D Terrains 2.5D Terrains Structure Max. size Computation time Max. size Computation time Vis Θ(n) O(n log n) O(m 3 n 2 ) O(m(nα(n) + k c ) log n) ColVis Θ(mn) O(n + (m 2 + k c ) log n) O(m 3 n 2 ) O(m(nα(n) + k c ) log n) VorVis Θ(mn) O(n + (m 2 + k c ) log n + k v (m + log n log m)) O(m 4 n 2 ) O(m(nα(n) + k c ) log n) Table 1: Complexity and computation time of the three visibility structures. viewsheds, as implicitly assumed in previous work [12]. Using that, we show how a combination of well-known algorithms can be used to compute the visibility structures reasonably fast. Finally, in Section 4 we analyze how our results change when viewpoints have limited sight, which is a very common situation for practical purposes D Terrains A 1.5D terrain T is an x-monotone polygonal chain, specified by its sorted list of n vertices. In addition, we are given a set P of m viewpoints placed on some of the terrain vertices. We first study the complexity of the visibility, colored visibility, and Voronoi visibility maps. Then we present algorithms to compute them efficiently. Note that in 1.5D our visibility structures can be seen as subdivisions of the x-axis into intervals. 2.1 Complexity of the Visibility Structures We start by considering the complexity of the visibility and colored visibility maps. Theorem 1. The visibility map Vis(T, P), for a 1.5D terrain T, has complexity Θ(n). Proof. There are two types of points of T that contribute to the complexity of Vis(T, P): vertices of T, and points where the terrain changes between visible and invisible (notice that there could be points that are of both types). There are n points of the first type, and in the following paragraph we show that the points of the second type amount to O(n). Consequently, k is Θ(n). Consider an edge e E(T ) and a viewpoint p i to the left of e. If p i sees some interior point q of e, then p i also sees all the segment from q to the rightmost endpoint of e. A symmetric situation occurs if p i is to the right of e. Thus there are three possible situations: either e is fully visible or invisible, or it contains two connected portions including endpoints where one is visible and the other is not, or it contains one invisible connected portion between two visible ones. This last case is shown in Fig. 3(a). In any case, the interior of e contains at most two points in which the terrain changes from visible to invisible or vice versa. Theorem 2. The colored visibility map ColVis(T, P), for a 1.5D terrain T, has maximum complexity Θ(mn). Proof. As already mentioned, once a viewpoint sees a given point q on an edge e E(T ), it necessarily sees the whole segment from q to one of its endpoints. Hence, all m viewpoints may produce at most m + 1 different regions of ColVis(T, P) on e. Therefore the complexity of ColVis(T, P) is O(mn). The example in Fig. 3(b) shows that the bound is tight. Next we study the Voronoi visibility map. We first consider this map restricted to an edge e E(T ). We define P l (respectively, P r ) as the subset of P containing the viewpoints on the left (respectively, on the right) of e. If a viewpoint is placed at the leftmost (respectively, 4
5 e (a) (b) Figure 3: (a) Edge e contains one invisible connected portion between two visible ones. (b) Every other edge has four different regions of ColVis(T, P) and four different regions of VorVis(T, P). rightmost) endpoint of e, then we assign it to P l (respectively, P r ). We define m l = P l and m r = P r. Lemma 1. The Voronoi visibility map VorVis(T, P) restricted to an edge e E(T ) has at most 4m 2 regions. Proof. Without loss of generality, we assume that e has a positive slope. We first show that VorVis(T, P l ) restricted to e has at most 2m l regions. Suppose that we traverse e from bottom to top, and that at point q on e we exit W T (p i, P l ) and enter W T (p j, P l ). Then either p j becomes visible at q, or the bisector of p i and p j intersects e at q. We say that q is of type I in the first case, and of type II in the second case. Since the portion of e seen by any viewpoint is connected, there are at most m l points of type I on e. In order to bound the number of type II points, suppose that we traverse e from bottom to top, and at point q we exit W T (p i, P l ) and enter W T (p j, P l ) due to an event of type II. Notice that both p i and p j see the interval of e from q up to the topmost point of e. Furthermore, viewpoint p j is closer than p i to all the points on such interval, since the bisector of p i and p j intersects e only once at q. Hence no other component of W T (p i, P l ) will be found in e. In particular, there will be no other events produced by the intersection of e with the bisector of p i and some other viewpoint of P l. Thus there are at most m l 1 points of the second type, which means that in e there are at most 2m l 1 points where the regions of VorVis(T, P l ) change. Analogous arguments show that VorVis(T, P r ) restricted to e has at most 2m r 1 points where the regions change. In order to merge VorVis(T, P l ) and VorVis(T, P r ), consider all the 2m 2 points and traverse e stopping at each of these points. Take a portion of e between two consecutive points, and let p i be the viewpoint such that the interval belongs to W T (p i, P l ), and p j be the viewpoint such that the interval belongs to W T (p j, P r ). If the bisector of p i and p j does not intersect this portion of e, then the portion is a component of either W T (p i, P) or W T (p j, P). If the bisector of p i and p j intersects this portion of e, then the portion is divided into a component of W T (p i, P) and a component of W T (p j, P). The latter case shows that each of these 2m 1 intervals can hold two different components and consequently VorVis(T, P) restricted to e can have up to 4m 2 regions. Theorem 3. The Voronoi visibility map VorVis(T, P), for a 1.5D terrain T, has maximum complexity Θ(mn). Proof. The upper bound follows from Lemma 1. The lower bound can be achieved by a configuration of viewpoints on a particular terrain T that can be repeated so that that every other edge of T has as many Voronoi regions as viewpoints, for arbitrary n and m. An example is shown in Fig. 3(b). 5
6 The three maps have complexity Ω(n), since the vertices of T contribute to their complexity. Notice that if we are interested in the output as a subdivision of the domain, rather than the terrain, we do not necessarily require Ω(n) space, since it suffices to provide the endpoints of each region. Additionally, it holds that k min(k c, k v ), and the configuration of Fig. 3(b) shows that k can be Θ(n) while both k c and k v are Θ(mn). On the other hand, it is not difficult to produce examples showing that the complexity of VorVis(T, P) can be higher than, lower than, or equal to that of ColVis(T, P). 2.2 Algorithms to Construct the Visibility Structures Construction of the Visibility Map To construct the visibility map we first compute the left- and right-visibility maps, and then merge them. The left-visibility map partitions T into two regions: the visible and the invisible portions of the terrain, where visible means visible from a viewpoint to the left of that point of the terrain (thus in the left-visibility map, viewpoints only see portions of the terrain to their right). The right-visibility map is defined analogously. In the following we explain the construction of the left-visibility map (thus, visible stands for left-visible). The algorithm uses the following property of 1.5D terrains, which is a consequence of the so-called order claim (see Claim 2.1 in [4]): Observation 1. Let q T be a point visible from the left by viewpoints p i and p j, with p i to the left of p j. For any point r T to the right of q, if p i does not see r, then p j cannot see r either. The algorithm sweeps the terrain from left to right while maintaining the leftmost visible viewpoint (if any), which we call the active viewpoint. The algorithm also stores a priority queue of events that comprises the x-coordinates of the vertices (vertex events) and the points of the terrain where a viewpoint becomes visible (viewpoint events). Initially we add an event for each terrain vertex and viewpoint, the latter corresponding to the position of the viewpoint on the terrain. Additional viewpoint events might be added later during the execution of the algorithm. We begin at the leftmost vertex, processing the events sorted by their x-coordinate as explained below. When two events have the same x-coordinate, viewpoint events are processed first. Let p a be the active viewpoint (if no viewpoint is visible at the moment, we set p a = ): (i) Viewpoint event, for a viewpoint p i. If p a =, then a new visibility region starts. If p a = or p i is to the left of p a, then p i becomes the active viewpoint. (ii) Vertex event, for a vertex v. If the active viewpoint p a becomes invisible after v, we compute where p a becomes visible again by a ray-shooting query, and add a viewpoint event at that point of the terrain. If there was a viewpoint event at v as well, this viewpoint becomes the active viewpoint. Otherwise, the current visibility region ends at v. The correctness of the method follows from Observation 1, which guarantees that it is enough to keep track of only the leftmost visible viewpoint. We obtain the following theorem: Theorem 4. Given a 1.5D terrain T, the visibility map Vis(T, P ) can be constructed in O(n log n) time. Proof. It only remains to prove that the total running time is O(n log n). The terrain (seen as a simple polygon) can be preprocessed in O(n) time and space in order to answer ray-shooting queries in O(log n) time [7]. Therefore, processing one event takes at most O(log n) time, and there are in total O(n) events. To see the latter, note that each event of type (ii) is associated 6
7 to a distinct vertex of the terrain, and that the ray-shooting query that might be done at this event produces exactly one event of type (i). It follows that the total running time is O(n log n). The right-visibility map can be computed analogously. We finally merge the two maps in O(n) time and obtain the visibility map. Thus the result follows. Note the algorithm can also be modified to output a set of viewpoints that cover the visible parts of the terrain Construction of the Colored Visibility Map The computation of the colored visibility map is similar to that of Vis(T, P ), with the extra complication of having to maintain all visible viewpoints during the sweep. To that end we use a balanced binary tree with all currently visible viewpoints, sorted by x-coordinate; so all operations in the list will take O(log m) time. When two events have the same x-coordinate, vertex events are processed first. Viewpoint events are handled as for Vis(T, P ) (updating the list of viewpoints instead). In vertex events we compute all viewpoints that become invisible after the vertex, and identify where they reappear. Observation 1 implies that all the viewpoints in question are contiguous in the list of visible viewpoints (i.e. they have increasing x-coordinates), and include the rightmost viewpoint. So we can process all viewpoints that become invisible in O(log m + log n) = O(log n) time for each of them. In principle, we charge this to the output size k c, since each viewpoint is likely to generate a new region when it reappears. However, it can happen that several viewpoints reappear at exactly the same point, generating a single region in ColVis. By Observation 1, a pair of viewpoints cannot reappear simultaneously more than once. Thus the total number of these situations is O(m 2 ), leading to the following result. Theorem 5. Given a 1.5D terrain T, the colored visibility map ColVis(T, P ) can be constructed in O(n + (m 2 + k c ) log n) time. Notice that the algorithm can be modified to output ColVis(T, P) in the following way: for the first component of the map, the algorithm returns the set of viewpoints that see that component. For the subsequent components, the algorithm outputs all changes in the set of visible viewpoints with respect to the component right before. The running time remains the same and becomes worst-case optimal, up to a O(log n) factor Construction of the Voronoi Visibility Map Divide and Conquer Approach A simple way to construct the Voronoi visibility map VorVis(T, P) is using divide and conquer. First, divide set P into two sets P 1 and P 2, each with m 2 viewpoints. Each set is recursively divided into two until each subset has only one viewpoint. The Voronoi diagram of one viewpoint is its visibility polygon, which can be computed in O(n) time [18]. Each of these diagrams can be transformed into a list of intervals such that each interval defines a portion of the terrain that is assigned to a particular viewpoint (or none). Therefore, the merge of two smaller diagrams can be done by comparing both intervals where there are parts of the terrain visible from the two viewpoints, and choosing the closest one. In other words, that portion of the terrain will be intersected with the perpendicular bisector between both viewpoints. In general, the merge step of two diagrams computed recursively takes O(mn) time. Thus the whole procedure takes O(mn log m) time. An Output-Sensitive Algorithm Even though VorVis(T, P) can have Θ(mn) complexity, it seems unlikely that such high complexity arises often in practical applications. In the following we present an alternative algorithm that essentially extracts the Voronoi visibility map from the With a finer analysis this term can be reduced to m η, for η the number of points of T where more than one viewpoint become visible (η ( m 2 ) ). 7
8 colored visibility map. Its running time depends on the complexity of the two structures, and avoids the fixed O(mn) term of the previous method. The algorithm sweeps the terrain from left to right. During this sweep, we maintain three data structures: (i) a doubly-linked list with the vertices of ColVis(T, P), ordered from left to right, (ii) a list P with the currently visible viewpoints, and (iii) for each p i P, the starting point a i of the last region in which p i is visible encountered so far in the sweep. We will use T [a, c], for a, c on T and x(a) < x(c), to denote the closed portion of the terrain between a and c. The algorithm produces VorVis(T, P) as a list of interval, viewpoint pairs ([a, c], p i ), such that p i is the closest viewpoint to all points in T [a, c]. If T [a, c] is not visible from any viewpoint, p i is set to. Our algorithm uses the following two functions, whose implementation is described later. IsAlwaysCloser([a, c], p 1, p 2 ) determines whether p 1 is always closer than p 2 in T [a, c], assuming both viewpoints are visible throughout T [a, c]. FirstRegionChange([a, c], p 1, P ) assumes that p 1 is visible throughout T [a, c] and is the closest visible viewpoint at a; it returns the leftmost point in T [a, c] where p 1 stops being the closest visible viewpoint from P (or the end of the interval, if that never happens). We process T in a number of iterations. Each iteration starts at the leftmost point u of a new Voronoi region, with P containing the viewpoints that are visible from u. If P =, then the region starting at u and ending at the start point v of the next region in ColVis(T, P) is not visible from any viewpoint. We report the region [u, v] with, and move forward (towards the right) until v, where a new Voronoi region, and thus a new iteration, starts. If P, we compute the closest visible viewpoint in O(m) time; if there is more than one, we move infinitesimally to the right of u, and compute the closest visible viewpoint there. Without loss of generality, we assume that the closest visible viewpoint is p 1. For all viewpoints p i P, we set a i := u. We now start traversing the terrain, from u towards the right. At a point q, we might find several events from ColVis(T, P): 1. A viewpoint p j becomes visible. We update P, set a j := q, and continue the sweep. 2. A viewpoint p j p 1 becomes invisible. We update P and proceed depending on two subcases: (a) IsAlwaysCloser([a j, q], p 1, p j ) = True. Continue traversing the terrain. (b) IsAlwaysCloser([a j, q], p 1, p j ) = False. There is a point in T [a j, q] at which p j is closer than p 1, so at least one Voronoi region starts between u and q. We find the leftmost region change v by calling FirstRegionChange([u, q], p 1, P ), and report [u, v] as a Voronoi region with p 1 as closest point. We now backtrack our sweep, i.e. we traverse the terrain from right to left (updating P as we encounter events), until we reach v, and start a new Voronoi region, and thus a new iteration of our algorithm at v. 3. Viewpoint p 1 becomes invisible. We update P, and compute IsAlwaysCloser ([a i, q], p 1, p i ), for all p i P. If the answer is True for all viewpoints in P, we report the region [u, q] with p 1 as closest viewpoint, and start a new Voronoi region and a new iteration at q. Otherwise, there is at least one Voronoi region that starts between u and q. We handle this analogously to case 2(b). 4. Vertex q is the last (rightmost) vertex of T. We proceed as in case 3, except that no new Voronoi region starts after q. 8
9 After processing all events, we have successfully computed VorVis(T, P). Since we backtrack our sweep in step 2(b), it may be the case that we (unnecessarily) visit events from ColVis(T, P) multiple times. We can avoid this by augmenting this step as follows. Consider step 2(a). We notice that there cannot be a Voronoi region of p j between a j and q (since at least p 1 is closer and visible). So we can remove the events of p j becoming visible at a j and invisible at q from ColVis(T, P). We remove q in step 2(a) itself. Event a j is removed if we encounter it while backtracking in step 2(b): at each event of type 1, i.e. a viewpoint p j becoming visible, we check if p j is in P. If not, we must have removed its corresponding endpoint (i.e. q) from ColVis(T, P). Thus we can also remove a j. Next, we discuss the implementation of the auxiliary functions. IsAlwaysCloser([a j, q], p 1, p j ) can be implemented to run in O(log n) time by doing a ray-shooting query, where the ray is the bisector of p 1 and p j. However, it is possible to answer this question faster. Lemma 2. Consider two points r and t such that all of T [r, t] is visible from two viewpoints p 1 and p 2. We can decide whether there exists some point in T [r, t] that is closer to p 2 than to p 1 in O(1) time. Proof. In order to know whether some point in T [r, t] is closer to p 2 than to p 1, we just need to do a constant number of verifications. In particular, if neither r or t lies on the bisector of p 1 and p 2, the answer is affirmative if and only if one of the following cases hold: (i) r or t is closer to p 2 than to p 1 ; (ii) r and t are closer to p 1 than to p 2, and x(r) < x(p 2 ) < x(t). If r (respectively, t) lies on the bisector of p 1 and p 2, let r (respectively, t ) be a point of T [r, t] to the right of r (respectively, left of t) and very close to it. We apply the characterization above replacing r by r (respectively, t by t ). Let us now prove that this characterization is correct. We denote by b 1,2 the bisector of p 1 and p 2. Notice that it suffices to prove that the characterization is correct for the case where neither r or t lies on b 1,2. Clearly, if condition (i) is satisfied, there exists some point in T [r, t] closer to p 2 than to p 1. If condition (ii) is satisfied, then p 2 belongs to T [r, t], and obviously the point of T where p 2 lies is closer to p 2 than to p 1. It remains to prove that, if there exists some point in T [r, t] closer to p 2 than to p 1, then either (i) or (ii) holds. Assume, for the sake of contradiction, that this is not true. Then there exists some point q in T [r, t] closer to p 2 than to p 1, r and t are closer to p 1 than to p 2, and either x(p 2 ) x(r) or x(p 2 ) x(t). Since r and t are closer to p 1 than to p 2, we actually have that either x(p 2 ) < x(r) or x(p 2 ) > x(t). Furthermore, b 1,2 properly intersects T [r, t] an even number of times (at least two), so in particular b 1,2 is not vertical. Let us first suppose that p 2 is below b 1,2. Then r and t are above b 1,2. If x(p 2 ) < x(r), then we have the situation in Fig. 4 (left). Since q is visible from p 2, it lies above the line through p 2 and r. Since it is closer to p 2 than to p 1, it lies below b 1,2. But these two half-planes cannot intersect to the right of r. This yields a contradiction. If x(p 2 ) > x(t), we have a similar situation (see Fig. 4, right): Point q lies above the line through p 2 and t, and below b 1,2. But these two half-planes do not intersect to the left of t, and we reach a contradiction. By a proper intersection of b 1,2 and the terrain we mean an intersection such that right before the intersection point the terrain is closer to one of the viewpoints, and right after it is closer to the other viewpoint. 9
10 t r b 1,2 p 1 r t p 1 p 2 T [r, t] T [r, t] p 2 b 1,2 Figure 4: The two subcases in the proof of Lemma 2 when p 2 is below b 1,2. The shaded area indicates the region where T [r, t], and thus point q, must lie. p 2 q e b 1,2 p 1 r t T [r, t] Figure 5: Proof of Lemma 2 for the case in which p 2 is above b 1,2. The lighter shaded area indicates the region where p 1 must lie, while the darker shade denotes the region where T [r, t] must be. We next suppose that p 2 is above b 1,2. Then r and t are below b 1,2. Let e be the first edge encountered when traversing the terrain from r to t such that a portion of e of positive length is closer to p 2 than to p 1, and let q be its intersection point with b 1,2 (see Fig. 5). Since p 1 sees e, it lies above the line through e. On the other hand, p 1 lies below b 1,2. In particular, p 1 lies to the left of q, while t lies to its right. Therefore the segment p 1 t intersects the vertical ray with origin at q and going downwards, so t is not visible from p 1. This yields a contradiction. FirstRegionChange([u, q], p 1, P ) can be implemented to run in O(m log n) time as follows: For every p i P, using a ray-shooting query, compute the leftmost point (if any) on T [a i, q] that is closer to p i than to p 1. Then keep the leftmost point u among all the points encountered. Again, it is possible to do this faster: Lemma 3. Let [u, q] be an interval such that p 1 P is visible in all T [u, q] and is the closest visible viewpoint at u. Let P be a set of viewpoints such that for each p i P, T [a i, q] is visible from p i, for some a i such that x(u) x(a i ). Then in O(m + log n log m + n ) time we can find the leftmost point u T [u, q] such that at u there is a change of region in VorVis(T, P ), for n the number of vertices in T [u, u ]. Before proving the lemma, we need some auxiliary results. Recall that a change in the Voronoi region can take place due to two situations: a viewpoint closer than p 1 reappearing, or the terrain crossing the bisector between p 1 and another visible viewpoint. We proceed in two phases. In a first phase we filter the viewpoints in P in order to leave precisely the ones that can create a region change only because of a bisector crossing T [u, q]. 10
11 In a second phase we compute the leftmost point where a bisector between p 1 and one of the remaining viewpoints crosses T [u, q]. The computed point is, with a few exceptions detailed later, the point where the first region change occurs. Next we present these two phases in detail. For each p i P we define an interval I i = [a i, q]. We also define I 1 = [u, q] = [a 1, c 1 ]. We assume that no viewpoint in P has a vertical bisector with p 1 (this special, but simpler, case will be discussed later). Filtering phase In a first step, we remove from P all the viewpoints p i P, such that no point in T [I i ] is closer to p i than to p 1. Using Lemma 2, this can be done in O(m) time. In a second step, we check for every p i P whether a i is closer to p i than to p 1. From all the viewpoints such that the answer is affirmative, we only keep the viewpoint p k such that a k is leftmost; all the other viewpoints for which the answer is affirmative are removed from P. Viewpoint p k is also removed from P and placed in a new subset P. All viewpoints such that x(a i ) > x(a k ) are also removed from P. Note that, by definition of p k, the region of p 1 cannot extend further to the right than a k. However, it is possible that there is a region change before that due to one of the other viewpoints in P. Any remaining viewpoint p i P has the following properties: 1. p 1 is closer to a i than p i. 2. p i is closer to p 1 in at least one point in T [u, q]. 3. x(a i ) x(a k ). Property 1 implies that if there is a region change between u and a k, it must be due to the terrain crossing a bisector (i.e. it cannot be due to a viewpoint reappearing). Therefore to find the first region change it is enough to find the leftmost point where T [u, q] crosses a bisector between p 1 and a viewpoint in P. Computing the first terrain-bisector crossing We show next that the first terrain-bisector crossing can be computed efficiently by using a prune and search algorithm. Lemma 4. The leftmost point where T [u, q] crosses a bisector between p 1 and a viewpoint in P can be found in O(m + log n log m + n ) time, where m is the size of P, n is the size of T, and n is the number of vertices of T between u and the crossing point found. Proof. Recall that we assume no bisector is vertical. We divide the remaining viewpoints in P into two groups. We add to set P 1 all viewpoints p i P such that p 1 is below b 1,i. Then we add to set P 2 all viewpoints p i P such that p 1 is above b 1,i. We define u as the leftmost point (if any) in T [I 1 ] such that at u there is a change of region in the Voronoi visibility map, and the viewpoint responsible for the change is in P 1 P 2. While there is more than one viewpoint in P 1 or P 2, we repeat the following procedure. We take the viewpoints in P 1 and put them in pairs arbitrarily. We do the same with the viewpoints in P 2. We consider the intersection points of all pairs of viewpoints p i, p h P 1 or p i, p h P 2 such that the x-coordinate of the intersection point of b 1,i and b 1,h lies in the interval [x(a i,h ), x(c i,h )], where [a i,h, c i,h ] = I i I h. We compute in O(m) the median µ of the x-coordinates of these intersection points. In O(log n) time, we compute the point w of T whose x-coordinate is µ. Using Lemma 2, we decide in O(m) time whether x(u ) µ or x(u ) > µ: We have that x(u ) µ if and only if at least one of the viewpoints p i P 1 P 2 is such that there exists some point in I i [a 1, w] closer to p i than to p 1. Let us now suppose that x(u ) µ, and let p i, p h P 1 be a pair such that b 1,i and b 1,h do not intersect, or the x-coordinate of the intersection point of b 1,i and b 1,h does not lie in [x(a i,h ), x(c i,h )] [x(a 1 ), µ]. Recall that, for all p j P 1, a j is closer to p 1 than to p j. By 11
12 the definition of P 1, this implies that a j is below b 1,j. We next show that we can remove p i or p h (or both) from P 1. If for one of the two viewpoints, say p i, it holds that no point in I i [a 1, w] is closer to p i than to p 1, then we remove that viewpoint from P 1. If this holds for both viewpoints, we remove both of them from P 1. Otherwise, we assume without loss of generality that x(a i ) x(a h ). There are basically three possible situations, illustrated in Fig. 6. In the first situation, depicted in Fig. 6 (left), b 1,h is below b 1,i in the interval [x(a i,h ), x(c i,h )] [x(a 1 ), µ]. We first check whether there exists some point in the portion of the terrain between a i and a h closer to p i than to p 1. In the affirmative, we can remove p h from P 1, since there is a change of Voronoi region before p h becomes visible. Otherwise, the portion of the terrain between a h and w crosses both b 1,i and b 1,h, but notice that it crosses b 1,h first. So we can remove p i from P 1. In the second situation, illustrated in Fig. 6 (center), b 1,h is above b 1,i in the interval [x(a i,h ), x(c i,h )] [x(a 1 ), µ], and a h is above b 1,i. In this case, the terrain crosses b 1,i before p h becomes visible, so we remove p h from P 1. In the third situation, depicted in in Fig. 6 (right), b 1,h is above b 1,i in the interval [x(a i,h ), x(c i,h )] [x(a 1 ), µ], and a h is below b 1,i. We also remove p h from P 1, since even if the terrain crosses b 1,h while p h is visible, it has crossed before b 1,i while p i is visible. x = µ x = µ x = µ b 1,i a i b 1,h a h a h b 1,h b 1,h b 1,i a i b 1,i a i a h Figure 6: Case x(u ) µ and p i, p h P 1. We do an analogous procedure with all pairs p i, p h P 2 such that b 1,i and b 1,h do not intersect, or the x-coordinate of the intersection point of b 1,i and b 1,h does not lie in [x(a i,h ), x(c i,h )] [x(a 1 ), µ]. We remove from P 2 at least one of the viewpoints of such a pair. By the way in which we chose µ, we have removed at least one viewpoint from half of the pairs of viewpoints in P 1 P 2. If x(u ) > µ, we apply a similar strategy. Let p i, p h P 1 be a pair such that b 1,i and b 1,h do not intersect, or the x-coordinate of the intersection point of b 1,i and b 1,h does not lie in [x(a i,h ), x(c i,h )] [µ, x(c 1 )]. If for one of the two viewpoints, say p i, it holds that no point in I i [w, c 1 ] is closer to p i than to p 1, then we remove that viewpoint from P 1. If this holds for both viewpoints, we remove both of them from P 1. Otherwise, we consider essentially two cases. In the first case, x(a i ) µ and x(a h ) µ. We assume without loss of generality that b 1,i is below b 1,h in the interval [x(a i,h ), x(c i,h )] [µ, x(c 1 )]. Then we are in the situation illustrated in Fig. 7. The portion of the terrain between w and c 1 cross both b 1,i and b 1,h, but it crosses b 1,i first, so we remove p h from P 1. In the second case, x(a i) > µ or x(a h ) > µ. We assume without loss of generality that x(a i ) x(a h ). This case can be further subdivided into three cases, which essentially correspond to the three cases depicted in Fig. 6. These cases are handled as explained above, and thus either p i or p h are removed from P 1. By analogous arguments, we remove some viewpoints from P 2 as well. In total, we remove at least roughly one fourth of the viewpoints in P 1 P 2. 12
13 x = µ b 1,h a i a h q b 1,i Figure 7: Case x(u ) > µ and p i, p h P 1. We repeat this procedure until there is one (or zero) viewpoint in P 1, and one (or zero) viewpoint in P 2. The total running time T (n, m) of this part satisfies T (n, m) Cm + log n + T (n, 3m/4) (for some constant C), which is O(m + log n log m). We have now at most two viewpoints (one in P 1, and one in P 2 ) such that one of them is the viewpoint responsible for the leftmost change in the Voronoi visibility map. In order to find it, we start traversing the terrain from u until we find the point u where the Voronoi region starts. This takes time proportional to the size of the terrain that we traverse. Therefore the first region change, assuming there are no vertical bisectors, occurs either at a k or at the point returned by the prune and search algorithm. Vertical bisectors It remains to explain how to deal with viewpoints in P that have a vertical bisector with p 1. First note that if there are several such viewpoints, then only the leftmost one is relevant. This is because all viewpoints that have a vertical bisector with p 1 lie to the right of p 1 and have the same y-coordinate as p 1. Thus the leftmost of them has its bisector crossing T first and is the one that sees more of T [u, q]. Suppose now that there are viewpoints in P with vertical bisectors with p 1, and let p v be the leftmost one. Then the x-coordinate of the first region change will be the minimum between the one obtained by the previous algorithm and max{x(a v ), x(b 1,v )}, where x(b 1,v ) is such that the bisector b 1,v has equation x = x(b 1,v ). The total running time of the algorithm is analyzed in the next theorem. Theorem 6. Given a 1.5D terrain T, the Voronoi visibility map VorVis(T, P) can be constructed in O(n + (m 2 + k c ) log n + k v (m + log n log m)) time. Proof. The correctness of the algorithm is clear from its description. We next analyze its running time. First we analyze the total time spent with calls to FirstRegionChange. For each call we charge O(m + log n log m) time to the Voronoi region starting at u. All the terms of the shape O(n ), for all calls to the function, add up to a single O(n) term in the total cost of the algorithm. It remains to analyze the rest of the time needed to handle each type of event. Recall that q is the point that triggers the event. In case 1 we distinguish two cases: if this is the last time that p j becomes visible in this iteration, then it is charged to the Voronoi region starting at u. Otherwise, we charge it to the region of ColVis(T, P) starting at q. 13
14 In case 2(a) we charge the cost to the portion of ColVis(T, P) starting at q. Since afterwards the event is deleted, it cannot be charged twice. Regarding case 2(b) (and the subcase of case 3 handled analogously): When we traverse the terrain from q to u, the first time that a given viewpoint p i becomes visible (that is, it becomes visible if the terrain is traversed from left to right), we charge the update of P to the Voronoi region starting at u. This in total charges O(m) time to that Voronoi region. The following times that we encounter events indicating that p i becomes visible (when traversing the terrain from left to right) correspond to portions of the terrain (where p i is visible) that are not relevant in future iterations. Notice that we remove these events from the data structure describing the colored visibility map, so we charge the computations done at that point to the event of p i becoming visible in ColVis(T, P), which will not be visited again because it has been removed. Finally, for the first subcase of case 3 we charge the cost, O(m), to the Voronoi region starting at u. All in all, extracting VorVis(T, P) from ColVis(T, P) by the previous algorithm takes O(k c +k v (m+log n log m)+n) time. Since we can construct ColVis(T, P) in O(n+(m 2 +k c ) log n) time, we obtain the desired result. The algorithm assumes that no bisector of two viewpoints is collinear with an edge of T, but it can easily be adapted to handle this case as well. On the other hand, if during the algorithm a relevant bisector is only tangent to the terrain (i.e., right before and right after this intersection the terrain is closer to the same viewpoint, among the two viewpoints defining the bisector), we do not consider this as a change in the Voronoi region, even if at the tangency point the terrain has two closest viewpoints. We also note that in the (hopefully unlikely) case of k v Θ(mn), the simpler divide and conquer algorithm achieves a better running time than this algorithm D Terrains 3.1 Complexity of the Visibility Structures We start by showing that the visibility map of a 2.5D terrain may have Ω(m 2 n 2 ) complexity. Proposition 1. The visibility map Vis(T, P ), for a 2.5D terrain T, can have complexity Ω(m 2 n 2 ). Proof. We present a terrain that consists of a flat (horizontal) rectangle, the courtyard, surrounded by a thin wall. We make O(n) (almost) vertical incisions, or windows, in the northern and western wall. We place half our viewpoints behind windows in the northern wall, and the other half behind windows in the western wall. Each viewpoint is placed so that it can see through O(n) windows into the courtyard, see Fig. 8. It follows that the visibility map inside the courtyard forms an O(mn) O(mn) grid. A polyhedron is a closed surface of genus zero in R 3 consisting of triangles that properly connect at common vertices or edges. So a 2.5D terrain T is a specific type of polyhedron, namely one with one simply connected hole, and such that any vertical line intersects the polyhedron in at most one point. In order to establish an upper bound on the complexity of Vis(T, P), ColVis(T, P), and VorVis(T, P), we start with the most general case, in which T is actually an arbitrary polyhedron. Let M be a polyhedron, let v be a vertex of M, and let p P be a viewpoint. We define the ray of p and v, denoted v p, to be the half line that starts at v and has vector pv. Similarly, let p P be a point and e = uv be an edge of M. The vase of p and e, denoted e p, is the region in 14
15 Figure 8: The visibility map of T has complexity Ω(m 2 n 2 ). Viewpoints are shown as white circles and rays indicate which part of the terrain is visible from the viewpoint. p v u u p (u,v) p p p (a) (b) (c) Figure 9: (a) A ray and a vase. (b) The top-down view of a terrain T with a single viewpoint p. The domain is decomposed in the viewshed Vis(T, p) and a collection of vases. (c) a 3D view of T and the vases of p. R 3 bounded by e, u p, and v p (see Fig. 9(a)). The set of all vases originating from p is denoted (p) = { e p e E(M)}. Clearly, the complexity of Vis(M, P) is bounded by its number of vertices. Assuming general position, we now classify the vertices of Vis(T, P): Observation 2. Vis(M, P) can have three types of vertices: (1) vertices of M, (2) intersections between an edge of M and a vase, and (3) intersections between a triangle of M and two vases. Theorem 7. The visibility map Vis(M, P) of a polyhedron M has complexity O(m 2 n 3 ). Proof. Each vase comes from a viewpoint in P and an edge in E(M). Clearly, V (M), E(M), F (M) O(n). So, the number of vertices of type (1) is at most O(n); the number of vertices of type (2) is at most O(mn 2 ); and the number of vertices of type (3) is at most O(m 2 n 3 ). It is worth noting that there is a fourth possible type of vertex: an intersection of three vases. However, such a vertex does not lie on M, so only appears if we want to compute the visibility volume (the subset of R 3 that is visible by some point in P), not if we want the visibility map. Also, we need m 3 to be able to have three intersecting vases. 15
16 Next, we show that if M is a terrain, then the number of vertices of type (3) can only be O(m 3 n 2 ). Given any object B R 3, we denote by B the vertical projection of B to R 2. Furthermore, we define S 1 S 2 to be the overlay of subdivisions S 1 and S 2. Let e s and f t be two vases. The intersection of these two vases is a line segment (or half line), which we denote by e s f t. We call this a pyramid ray. Observation 3. Consider k planar subdivisions S 1, S 2,..., S k, and let S = k i=1 S i be their overlay. Any line l has at most O( k i=1 S i ) intersections with S, and the complexity of S is at most O(( k i=1 S i ) 2 ). Lemma 5. Let T be a 2.5D terrain, and P be a set of m viewpoints. Let R be the set of pyramid rays created by P on T. Every edge e E(T ) intersects at most O(m 3 n) rays from R. Proof. Let X i be the subdivision of R 2 that we obtain by vertically projecting the upper envelope of T and all vases in (p i ). Fig. 9(b) shows an example. Any pyramid ray r R is the intersection of one vase from (p i ) and one vase from (p j ), for some i j. This means that r is contained in a cell of X i X j. Let X = m i=1 X i. Then each cell in X is contained in at most m different projected vases, hence, it contains at most ( ) m 2 (pieces of) projected pyramid rays. There are O(n) vases in (p i ), so X i has O(n) vertices. From Observation 3 it follows that any line and therefore any edge e E(T ) intersects the edges of X at most O(mn) times. This means e intersects at most O(mn) cells, and therefore also at most O(m 3 n) pyramid rays in R. With Lemma 5 in place, we can now argue that for a 2.5D terrain T the number of vertices of type (3) is only quadratic in n. Lemma 6. The visibility map Vis(T, P), for a 2.5D terrain T, contains at most O(m 3 n 2 ) vertices of type (3). Proof. We split the vertices of Vis(T, P) of type (3) into two subtypes. Each vertex v (of type (3)) is associated with one pyramid ray r. Now, v is either of type (3)a, if it is the highest vertex on r, or of type (3)b otherwise. The number of vertices of type (3)a is at most O(m 2 n 2 ), since there is at most one per ray and there are only O(m 2 n 2 ) rays. We now show the number of vertices of type (3)b is at most O(m 3 n 2 ). Let v be a vertex of Vis(T, P) of type (3)b. It is the intersection of a ray r and a triangle t F (T ). Since v is not the highest vertex on r, there must be another vertex w on r. Clearly, w cannot lie on t, so w must lie outside t, while v lies inside t. Thus there must be an edge e E(P ) such that r crosses e. We charge v to this intersection between r and e. Clearly, any such intersection gets charged at most once. By Lemma 5, there are at most O(m 3 n 2 ) such intersections in total. Hence, the number of vertices of type (3)b is also at most O(m 3 n 2 ). Theorem 8. The visibility map Vis(T, P), for a 2.5D terrain T, has complexity O(m 3 n 2 ). The visibility map Vis(T, P) corresponds to the union over P of the viewsheds of the individual viewpoints. Similarly, the colored visibility map corresponds to the overlay of the viewsheds of the individual viewpoints in P. Therefore, Observation 2 also holds for the vertices of ColVis(T, P). This means we can use the same argument to bound the complexity of ColVis(T, P). We conclude: Theorem 9. The colored visibility map ColVis(T, P), for a 2.5D terrain T, has complexity O(m 3 n 2 ). 16
arxiv: v3 [cs.cg] 1 Dec 2014
Terrain Visibility with Multiple Viewpoints Ferran Hurtado Maarten Löffler Inês Matos Vera Sacristán Maria Saumell Rodrigo I. Silveira Frank Staals December 2, 2014 arxiv:1309.4323v3 [cs.cg] 1 Dec 2014
More informationLecture 3: Art Gallery Problems and Polygon Triangulation
EECS 396/496: Computational Geometry Fall 2017 Lecture 3: Art Gallery Problems and Polygon Triangulation Lecturer: Huck Bennett In this lecture, we study the problem of guarding an art gallery (specified
More informationStabbers of line segments in the plane
Stabbers of line segments in the plane M. Claverol D. Garijo C. I. Grima A. Márquez C. Seara August 3, 2010 Abstract The problem of computing a representation of the stabbing lines of a set S of segments
More informationCS6100: Topics in Design and Analysis of Algorithms
CS6100: Topics in Design and Analysis of Algorithms Guarding and Triangulating Polygons John Augustine CS6100 (Even 2012): Guarding and Triangulating Polygons The Art Gallery Problem A simple polygon is
More informationComputational Geometry
Motivation Motivation Polygons and visibility Visibility in polygons Triangulation Proof of the Art gallery theorem Two points in a simple polygon can see each other if their connecting line segment is
More informationLecture 16: Voronoi Diagrams and Fortune s Algorithm
contains q changes as a result of the ith insertion. Let P i denote this probability (where the probability is taken over random insertion orders, irrespective of the choice of q). Since q could fall through
More informationChapter 8. Voronoi Diagrams. 8.1 Post Oce Problem
Chapter 8 Voronoi Diagrams 8.1 Post Oce Problem Suppose there are n post oces p 1,... p n in a city. Someone who is located at a position q within the city would like to know which post oce is closest
More informationConnected Components of Underlying Graphs of Halving Lines
arxiv:1304.5658v1 [math.co] 20 Apr 2013 Connected Components of Underlying Graphs of Halving Lines Tanya Khovanova MIT November 5, 2018 Abstract Dai Yang MIT In this paper we discuss the connected components
More informationComputational Geometry
Lecture 1: Introduction and convex hulls Geometry: points, lines,... Geometric objects Geometric relations Combinatorial complexity Computational geometry Plane (two-dimensional), R 2 Space (three-dimensional),
More informationOptimal detection of intersections between convex polyhedra
1 2 Optimal detection of intersections between convex polyhedra Luis Barba Stefan Langerman 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Abstract For a polyhedron P in R d, denote by P its combinatorial complexity,
More informationComputing intersections in a set of line segments: the Bentley-Ottmann algorithm
Computing intersections in a set of line segments: the Bentley-Ottmann algorithm Michiel Smid October 14, 2003 1 Introduction In these notes, we introduce a powerful technique for solving geometric problems.
More informationCMSC 754 Computational Geometry 1
CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College
More informationNotes in Computational Geometry Voronoi Diagrams
Notes in Computational Geometry Voronoi Diagrams Prof. Sandeep Sen and Prof. Amit Kumar Indian Institute of Technology, Delhi Voronoi Diagrams In this lecture, we study Voronoi Diagrams, also known as
More informationCS S Lecture February 13, 2017
CS 6301.008.18S Lecture February 13, 2017 Main topics are #Voronoi-diagrams, #Fortune. Quick Note about Planar Point Location Last week, I started giving a difficult analysis of the planar point location
More informationPolygon Triangulation. (slides partially by Daniel Vlasic )
Polygon Triangulation (slides partially by Daniel Vlasic ) Triangulation: Definition Triangulation of a simple polygon P: decomposition of P into triangles by a maximal set of non-intersecting diagonals
More informationDetecting intersections between convex polyhedra
Detecting intersections between convex polyhedra Luis Barba Stefan Langerman Abstract For a polyhedron P in R d, denote by P its combinatorial complexity, i.e., the number of faces, edges and vertices
More informationTheoretical Computer Science
Theoretical Computer Science 408 (2008) 129 142 Contents lists available at ScienceDirect Theoretical Computer Science journal homepage: www.elsevier.com/locate/tcs Drawing colored graphs on colored points
More informationCS 532: 3D Computer Vision 14 th Set of Notes
1 CS 532: 3D Computer Vision 14 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215 Lecture Outline Triangulating
More informationPolygon Triangulation. (slides partially by Daniel Vlasic )
Polygon Triangulation (slides partially by Daniel Vlasic ) Triangulation: Definition Triangulation of a simple polygon P: decomposition of P into triangles by a maximal set of non-intersecting diagonals
More informationEXTREME POINTS AND AFFINE EQUIVALENCE
EXTREME POINTS AND AFFINE EQUIVALENCE The purpose of this note is to use the notions of extreme points and affine transformations which are studied in the file affine-convex.pdf to prove that certain standard
More informationThe Geometry of Carpentry and Joinery
The Geometry of Carpentry and Joinery Pat Morin and Jason Morrison School of Computer Science, Carleton University, 115 Colonel By Drive Ottawa, Ontario, CANADA K1S 5B6 Abstract In this paper we propose
More informationLine Arrangement. Chapter 6
Line Arrangement Chapter 6 Line Arrangement Problem: Given a set L of n lines in the plane, compute their arrangement which is a planar subdivision. Line Arrangements Problem: Given a set L of n lines
More informationPlanar Point Location
C.S. 252 Prof. Roberto Tamassia Computational Geometry Sem. II, 1992 1993 Lecture 04 Date: February 15, 1993 Scribe: John Bazik Planar Point Location 1 Introduction In range searching, a set of values,
More informationComputational Geometry
Windowing queries Windowing Windowing queries Zoom in; re-center and zoom in; select by outlining Windowing Windowing queries Windowing Windowing queries Given a set of n axis-parallel line segments, preprocess
More informationFlavor of Computational Geometry. Voronoi Diagrams. Shireen Y. Elhabian Aly A. Farag University of Louisville
Flavor of Computational Geometry Voronoi Diagrams Shireen Y. Elhabian Aly A. Farag University of Louisville March 2010 Pepperoni Sparse Pizzas Olive Sparse Pizzas Just Two Pepperonis A person gets the
More information1/60. Geometric Algorithms. Lecture 1: Introduction. Convex Hulls
1/60 Geometric Algorithms Lecture 1: Introduction Convex Hulls Geometric algorithms scope 2/60 Geometry algorithms (practice): Study of geometric problems that arise in various applications and how algorithms
More informationComputational Geometry
Windowing queries Windowing Windowing queries Zoom in; re-center and zoom in; select by outlining Windowing Windowing queries Windowing Windowing queries Given a set of n axis-parallel line segments, preprocess
More information6.854J / J Advanced Algorithms Fall 2008
MIT OpenCourseWare http://ocw.mit.edu 6.854J / 18.415J Advanced Algorithms Fall 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. 18.415/6.854 Advanced
More informationLine segment intersection. Family of intersection problems
CG Lecture 2 Line segment intersection Intersecting two line segments Line sweep algorithm Convex polygon intersection Boolean operations on polygons Subdivision overlay algorithm 1 Family of intersection
More informationImproved Bounds for Intersecting Triangles and Halving Planes
Improved Bounds for Intersecting Triangles and Halving Planes David Eppstein Department of Information and Computer Science University of California, Irvine, CA 92717 Tech. Report 91-60 July 15, 1991 Abstract
More informationOn the Relationships between Zero Forcing Numbers and Certain Graph Coverings
On the Relationships between Zero Forcing Numbers and Certain Graph Coverings Fatemeh Alinaghipour Taklimi, Shaun Fallat 1,, Karen Meagher 2 Department of Mathematics and Statistics, University of Regina,
More informationarxiv: v1 [cs.cg] 8 Jan 2018
Voronoi Diagrams for a Moderate-Sized Point-Set in a Simple Polygon Eunjin Oh Hee-Kap Ahn arxiv:1801.02292v1 [cs.cg] 8 Jan 2018 Abstract Given a set of sites in a simple polygon, a geodesic Voronoi diagram
More informationPolygon decomposition. Motivation: Art gallery problem
CG Lecture 3 Polygon decomposition 1. Polygon triangulation Triangulation theory Monotone polygon triangulation 2. Polygon decomposition into monotone pieces 3. Trapezoidal decomposition 4. Convex decomposition
More information2 A Plane Sweep Algorithm for Line Segment Intersection
EECS 396/496: Computational Geometry Fall 2017 Lecturer: Huck Bennett Lecture 2: Line Segment Intersection In this lecture, we will study the problem of computing all intersections of a set of line segmentn
More informationAverage case analysis of dynamic geometric optimization
Average case analysis of dynamic geometric optimization David Eppstein Department of Information and Computer Science University of California, Irvine, CA 92717 May 19, 1995 Abstract We maintain the maximum
More informationMatching Algorithms. Proof. If a bipartite graph has a perfect matching, then it is easy to see that the right hand side is a necessary condition.
18.433 Combinatorial Optimization Matching Algorithms September 9,14,16 Lecturer: Santosh Vempala Given a graph G = (V, E), a matching M is a set of edges with the property that no two of the edges have
More informationNotes and Answers to Homework Exam 1, Geometric Algorithms, 2017
Notes and Answers to Homework Exam 1, Geometric Algorithms, 2017 Below are some notes and sketches of correct answers for the first homework exam. We have also included the most common mistakes that were
More informationGeneralized kernels of polygons under rotation
Generalized kernels of polygons under rotation David Orden 1, Leonidas Palios 2, Carlos Seara 3, and Paweł Żyliński 4 1 Departamento de Física y Matemáticas, Universidad de Alcalá, Spain david.orden@uah.es
More informationEdge Guards for Polyhedra in Three-Space
Edge Guards for Polyhedra in Three-Space Javier Cano Csaba D. Tóth Jorge Urrutia Abstract It is shown that every polyhedron in R with m edges can be guarded with at most 27 2m The bound improves to 5 6
More informationFaster parameterized algorithms for Minimum Fill-In
Faster parameterized algorithms for Minimum Fill-In Hans L. Bodlaender Pinar Heggernes Yngve Villanger Abstract We present two parameterized algorithms for the Minimum Fill-In problem, also known as Chordal
More informationPlanar Graphs. 1 Graphs and maps. 1.1 Planarity and duality
Planar Graphs In the first half of this book, we consider mostly planar graphs and their geometric representations, mostly in the plane. We start with a survey of basic results on planar graphs. This chapter
More informationSimultaneous Diagonal Flips in Plane Triangulations
@ _ d j 5 6 5 6 Simultaneous Diagonal Flips in Plane Triangulations Prosenjit Bose Jurek Czyzowicz Zhicheng Gao Pat Morin David R. Wood Abstract Simultaneous diagonal flips in plane triangulations are
More information10. Line Arrangements Lecture on Monday 2 nd November, 2009 by Michael Homann
10. Line Arrangements Lecture on Monday 2 nd November, 2009 by Michael Homann During the course of this lecture we encountered several situations where it was convenient to assume
More informationVisibility: Finding the Staircase Kernel in Orthogonal Polygons
Visibility: Finding the Staircase Kernel in Orthogonal Polygons 8 Visibility: Finding the Staircase Kernel in Orthogonal Polygons Tzvetalin S. Vassilev, Nipissing University, Canada Stefan Pape, Nipissing
More informationPebble Sets in Convex Polygons
2 1 Pebble Sets in Convex Polygons Kevin Iga, Randall Maddox June 15, 2005 Abstract Lukács and András posed the problem of showing the existence of a set of n 2 points in the interior of a convex n-gon
More informationFaster parameterized algorithms for Minimum Fill-In
Faster parameterized algorithms for Minimum Fill-In Hans L. Bodlaender Pinar Heggernes Yngve Villanger Technical Report UU-CS-2008-042 December 2008 Department of Information and Computing Sciences Utrecht
More informationCritical Area Computation for Missing Material Defects in VLSI Circuits
IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 20, NO. 5, MAY 2001 583 Critical Area Computation for Missing Material Defects in VLSI Circuits Evanthia Papadopoulou
More informationCompatible Trees. 1 Introduction. Alfredo García 1 Clemens Huemer 2 Ferran Hurtado 3 Javier Tejel 1
Compatible Trees Alfredo García 1 Clemens Huemer 2 Ferran Hurtado 3 Javier Tejel 1 Abstract Two plane geometric graphs are said to be compatible when their union is a plane geometric graph. Let S be a
More informationPacking Two Disks into a Polygonal Environment
Packing Two Disks into a Polygonal Environment Prosenjit Bose, School of Computer Science, Carleton University. E-mail: jit@cs.carleton.ca Pat Morin, School of Computer Science, Carleton University. E-mail:
More informationMotorcycle Graphs and Straight Skeletons
Motorcycle Graphs and Straight Skeletons Siu-Wing Cheng Antoine Vigneron March 17, 2005 Abstract We present a new algorithm to compute motorcycle graphs. It runs in O(n n log n) time when n is the number
More informationCMSC 754 Computational Geometry 1
CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College
More informationVoronoi diagram and Delaunay triangulation
Voronoi diagram and Delaunay triangulation Ioannis Emiris & Vissarion Fisikopoulos Dept. of Informatics & Telecommunications, University of Athens Computational Geometry, spring 2015 Outline 1 Voronoi
More informationRigidity, connectivity and graph decompositions
First Prev Next Last Rigidity, connectivity and graph decompositions Brigitte Servatius Herman Servatius Worcester Polytechnic Institute Page 1 of 100 First Prev Next Last Page 2 of 100 We say that a framework
More informationLecture 25: Bezier Subdivision. And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10
Lecture 25: Bezier Subdivision And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10 1. Divide and Conquer If we are going to build useful
More informationPolygon Partitioning. Lecture03
1 Polygon Partitioning Lecture03 2 History of Triangulation Algorithms 3 Outline Monotone polygon Triangulation of monotone polygon Trapezoidal decomposition Decomposition in monotone mountain Convex decomposition
More informationMonotone Paths in Geometric Triangulations
Monotone Paths in Geometric Triangulations Adrian Dumitrescu Ritankar Mandal Csaba D. Tóth November 19, 2017 Abstract (I) We prove that the (maximum) number of monotone paths in a geometric triangulation
More informationCMPS 3130/6130 Computational Geometry Spring Voronoi Diagrams. Carola Wenk. Based on: Computational Geometry: Algorithms and Applications
CMPS 3130/6130 Computational Geometry Spring 2015 Voronoi Diagrams Carola Wenk Based on: Computational Geometry: Algorithms and Applications 2/19/15 CMPS 3130/6130 Computational Geometry 1 Voronoi Diagram
More informationTree-Weighted Neighbors and Geometric k Smallest Spanning Trees
Tree-Weighted Neighbors and Geometric k Smallest Spanning Trees David Eppstein Department of Information and Computer Science University of California, Irvine, CA 92717 Tech. Report 92-77 July 7, 1992
More informationSpace-Time Trade-offs for Stack-Based Algorithms
Space-Time Trade-offs for Stack-Based Algorithms Luis Barba Matias Korman, Stefan Langerman Kunihiko Sadakane Rodrigo I. Silveira August 18, 2014 Abstract In memory-constrained algorithms the access to
More information7 Voronoi Diagrams. The Post Office Problem
7 Voronoi Diagrams The Post Office Problem Suppose you are on the advisory board for the planning of a supermarket chain, and there are plans to open a new branch at a certain location. To predict whether
More information26 The closest pair problem
The closest pair problem 1 26 The closest pair problem Sweep algorithms solve many kinds of proximity problems efficiently. We present a simple sweep that solves the two-dimensional closest pair problem
More informationProjects & Polygon Triangulation
Computational Geometry Lecture Projects & INSTITUTE FOR THEORETICAL INFORMATICS FACULTY OF INFORMATICS Tamara Mchedlidze Darren Strash 02.11.2015 1 Projects 2 Project Specifications Groups: 2 or 3 students,
More informationPreferred directions for resolving the non-uniqueness of Delaunay triangulations
Preferred directions for resolving the non-uniqueness of Delaunay triangulations Christopher Dyken and Michael S. Floater Abstract: This note proposes a simple rule to determine a unique triangulation
More informationJanuary 10-12, NIT Surathkal Introduction to Graph and Geometric Algorithms
Geometric data structures Sudebkumar Prasant Pal Department of Computer Science and Engineering IIT Kharagpur, 721302. email: spp@cse.iitkgp.ernet.in January 10-12, 2012 - NIT Surathkal Introduction to
More informationIn what follows, we will focus on Voronoi diagrams in Euclidean space. Later, we will generalize to other distance spaces.
Voronoi Diagrams 4 A city builds a set of post offices, and now needs to determine which houses will be served by which office. It would be wasteful for a postman to go out of their way to make a delivery
More informationarxiv: v1 [cs.dm] 13 Apr 2012
A Kuratowski-Type Theorem for Planarity of Partially Embedded Graphs Vít Jelínek, Jan Kratochvíl, Ignaz Rutter arxiv:1204.2915v1 [cs.dm] 13 Apr 2012 Abstract A partially embedded graph (or Peg) is a triple
More informationof a set of n straight lines, have been considered. Among them are k-sets in higher dimensions or k-levels of curves in two dimensions and surfaces in
Point-sets with few k-sets Helmut Alt? Stefan Felsner Ferran Hurtado y Marc Noy y Abstract A k-set of a nite set S of points in the plane is a subset of cardinality k that can be separated from the rest
More informationPartitioning Orthogonal Polygons by Extension of All Edges Incident to Reflex Vertices: lower and upper bounds on the number of pieces
Partitioning Orthogonal Polygons by Extension of All Edges Incident to Reflex Vertices: lower and upper bounds on the number of pieces António Leslie Bajuelos 1, Ana Paula Tomás and Fábio Marques 3 1 Dept.
More informationBar k-visibility Graphs
Bar k-visibility Graphs Alice M. Dean Department of Mathematics Skidmore College adean@skidmore.edu William Evans Department of Computer Science University of British Columbia will@cs.ubc.ca Ellen Gethner
More informationLifting Transform, Voronoi, Delaunay, Convex Hulls
Lifting Transform, Voronoi, Delaunay, Convex Hulls Subhash Suri Department of Computer Science University of California Santa Barbara, CA 93106 1 Lifting Transform (A combination of Pless notes and my
More informationFINAL EXAM SOLUTIONS
COMP/MATH 3804 Design and Analysis of Algorithms I Fall 2015 FINAL EXAM SOLUTIONS Question 1 (12%). Modify Euclid s algorithm as follows. function Newclid(a,b) if a
More informationThe Art Gallery Problem: An Overview and Extension to Chromatic Coloring and Mobile Guards
The Art Gallery Problem: An Overview and Extension to Chromatic Coloring and Mobile Guards Nicole Chesnokov May 16, 2018 Contents 1 Introduction 2 2 The Art Gallery Problem 3 2.1 Proof..................................
More informationarxiv: v1 [cs.cc] 30 Jun 2017
Hamiltonicity is Hard in Thin or Polygonal Grid Graphs, but Easy in Thin Polygonal Grid Graphs Erik D. Demaine Mikhail Rudoy arxiv:1706.10046v1 [cs.cc] 30 Jun 2017 Abstract In 2007, Arkin et al. [3] initiated
More informationMISCELLANEOUS SHAPES
MISCELLANEOUS SHAPES 4.1. INTRODUCTION Five generic shapes of polygons have been usefully distinguished in the literature: convex, orthogonal, star, spiral, and monotone. 1 Convex polygons obviously do
More informationarxiv: v3 [cs.dm] 12 Jun 2014
On Maximum Differential Coloring of Planar Graphs M. A. Bekos 1, M. Kaufmann 1, S. Kobourov, S. Veeramoni 1 Wilhelm-Schickard-Institut für Informatik - Universität Tübingen, Germany Department of Computer
More informationCMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013
CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013 Reading: Today s materials is presented in part in Computational Geometry: Algorithms and Applications (3rd
More informationAn efficient implementation of the greedy forwarding strategy
An efficient implementation of the greedy forwarding strategy Hannes Stratil Embedded Computing Systems Group E182/2 Technische Universität Wien Treitlstraße 3 A-1040 Vienna Email: hannes@ecs.tuwien.ac.at
More informationOrthogonal art galleries with holes: a coloring proof of Aggarwal s Theorem
Orthogonal art galleries with holes: a coloring proof of Aggarwal s Theorem Pawe l Żyliński Institute of Mathematics University of Gdańsk, 8095 Gdańsk, Poland pz@math.univ.gda.pl Submitted: Sep 9, 005;
More informationComputational Geometry. Algorithm Design (10) Computational Geometry. Convex Hull. Areas in Computational Geometry
Computational Geometry Algorithm Design (10) Computational Geometry Graduate School of Engineering Takashi Chikayama Algorithms formulated as geometry problems Broad application areas Computer Graphics,
More informationSolutions to problem set 1
Massachusetts Institute of Technology Handout 5 6.838: Geometric Computation October 4, 2001 Professors Piotr Indyk and Seth Teller Solutions to problem set 1 (mostly taken from the solution set of Jan
More informationG 6i try. On the Number of Minimal 1-Steiner Trees* Discrete Comput Geom 12:29-34 (1994)
Discrete Comput Geom 12:29-34 (1994) G 6i try 9 1994 Springer-Verlag New York Inc. On the Number of Minimal 1-Steiner Trees* B. Aronov, 1 M. Bern, 2 and D. Eppstein 3 Computer Science Department, Polytechnic
More informationComputing the Fréchet Distance Between Simple Polygons
Computing the Fréchet Distance Between Simple Polygons Kevin Buchin a,1, Maike Buchin a,1 and Carola Wenk b,2 a Institute of Computer Science, Freie Universität Berlin, Takustraße 9, D-14195 Berlin, Germany
More informationCapturing an Evader in a Polygonal Environment with Obstacles
Capturing an Evader in a Polygonal Environment with Obstacles Deepak Bhadauria and Volkan Isler Department of Computer Science and Engineering University of Minnesota {bhadau,isler}@cs.umn.edu Abstract
More informationDischarging and reducible configurations
Discharging and reducible configurations Zdeněk Dvořák March 24, 2018 Suppose we want to show that graphs from some hereditary class G are k- colorable. Clearly, we can restrict our attention to graphs
More informationComputational Geometry [csci 3250]
Computational Geometry [csci 3250] Laura Toma Bowdoin College Polygon Triangulation Polygon Triangulation The problem: Triangulate a given polygon. (output a set of diagonals that partition the polygon
More informationCS60003 Algorithm Design and Analysis, Autumn
CS60003 Algorithm Design and Analysis, Autumn 2009 10 Mid-Semester Test Maximum marks: 45 September 20, 2009 Total time: 2 hours Roll no: Name: [ Write your answers in the question paper itself. Be brief
More information9 Bounds for the Knapsack Problem (March 6)
9 Bounds for the Knapsack Problem (March 6) In this lecture, I ll develop both upper and lower bounds in the linear decision tree model for the following version of the (NP-complete) Knapsack 1 problem:
More informationComputational Geometry
Lecture 12: Lecture 12: Motivation: Terrains by interpolation To build a model of the terrain surface, we can start with a number of sample points where we know the height. Lecture 12: Motivation: Terrains
More informationReconstructing Orthogonal Polyhedra from Putative Vertex Sets
Reconstructing Orthogonal Polyhedra from Putative Vertex Sets Therese Biedl 1 and Burkay Genc 1 David R. Cheriton School of Computer Science, University of Waterloo, Waterloo ON N2L 3G1, Canada biedl@uwaterloo.ca,
More informationLine Arrangements. Applications
Computational Geometry Chapter 9 Line Arrangements 1 Line Arrangements Applications On the Agenda 2 1 Complexity of a Line Arrangement Given a set L of n lines in the plane, their arrangement A(L) is the
More informationCS 532: 3D Computer Vision 11 th Set of Notes
1 CS 532: 3D Computer Vision 11 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215 Lecture Outline Line Intersection
More informationComputing a visibility polygon using few variables
Computing a visibility polygon using few variables Luis Barba 1, Matias Korman 2, Stefan Langerman 2, and Rodrigo I. Silveira 3 1 Universidad Nacional Autónoma de México (UNAM), Mexico D.F., Mexico. l.barba@uxmcc2.iimas.unam.mx
More informationLecture notes on the simplex method September We will present an algorithm to solve linear programs of the form. maximize.
Cornell University, Fall 2017 CS 6820: Algorithms Lecture notes on the simplex method September 2017 1 The Simplex Method We will present an algorithm to solve linear programs of the form maximize subject
More information3. Voronoi Diagrams. 3.1 Definitions & Basic Properties. Examples :
3. Voronoi Diagrams Examples : 1. Fire Observation Towers Imagine a vast forest containing a number of fire observation towers. Each ranger is responsible for extinguishing any fire closer to her tower
More informationA Reduction of Conway s Thrackle Conjecture
A Reduction of Conway s Thrackle Conjecture Wei Li, Karen Daniels, and Konstantin Rybnikov Department of Computer Science and Department of Mathematical Sciences University of Massachusetts, Lowell 01854
More informationOn the number of distinct directions of planes determined by n points in R 3
On the number of distinct directions of planes determined by n points in R 3 Rom Pinchasi August 27, 2007 Abstract We show that any set of n points in R 3, that is not contained in a plane, determines
More informationParameterized Complexity of Independence and Domination on Geometric Graphs
Parameterized Complexity of Independence and Domination on Geometric Graphs Dániel Marx Institut für Informatik, Humboldt-Universität zu Berlin, Unter den Linden 6, 10099 Berlin, Germany. dmarx@informatik.hu-berlin.de
More informationEuclidean TSP Between Two Nested Convex Obstacles
Euclidean TSP Between Two Nested Convex Obstacles August 11, 2005 Jeff Abrahamson, Dept. of Computer Science, Drexel University, Philadelphia, PA, USA, jeffa@cs.drexel.edu. Ali Shokoufandeh, Dept. of Computer
More informationThe Touring Polygons Problem (TPP)
The Touring Polygons Problem (TPP) [Dror-Efrat-Lubiw-M]: Given a sequence of k polygons in the plane, a start point s, and a target point, t, we seek a shortest path that starts at s, visits in order each
More informationFOUR EDGE-INDEPENDENT SPANNING TREES 1
FOUR EDGE-INDEPENDENT SPANNING TREES 1 Alexander Hoyer and Robin Thomas School of Mathematics Georgia Institute of Technology Atlanta, Georgia 30332-0160, USA ABSTRACT We prove an ear-decomposition theorem
More information