In this paper we study several problems concerning the visibility of a polyhedral terrain σ from a point (or several points) lying above it. Our results are: (1) For a fixed point a , one can preproeess a in time O ( n α( n ) log n ), to produce a data structure of size O( n α( n ) log n ), which supports fast ray shooting queries, where each such query asks for the point on σ that is visible from a in a specified direction. Here n is the number of faces of σ and α( n ) is the extremely slowly growing functional inverse of Ackermann's function. (2) If the viewing point a can vary along a fixed vertical line L , then the entire visibility structure of σ from L is of combinatorial complexity O ( n λ 4 ( n )), where λ 4 ( n ) is the maximal length of an ( n , 4) Davenport-Sehinzel sequence, and is nearly linear in n , and where the visibility structure in question is the decomposition of L x S 2 into maximal connected regions, such that for each such region R , all points ( a , u )∈ R are such that the ray from a ∈ L in direction u ∈ S 2 first intersects σ at a point on the same face of σ. Furthermore, we present an O ( n λ 4 ( n )log n )-time algorithm that preprocesses L and σ into a data-structure of size O ( n λ 4 ( n )) which supports O (log 2 n ) time ray shooting queries. (3) Concerning the results in (2) we show that (i) if L is not vertical, then the resulting visibility structure can be of size Ω( n 3 ); (ii) there exist a vertical line L and a polyhedral terrain a with n faces, for which the resulting visibility structure is of size Ω( n 2 α( n )). (4) Finally, we consider the problem of placing on the surface σ one or several viewing points which collectively cover the entire surface (i.e. each point on σ is visible from at least one of these viewing “stations”). We show (i) in the case of a single viewing station, one can determine in time O ( n log n ) whether such a station exists, and if so, produce such a point; (ii) the problem of finding the smallest number of points on σ that can collectively see the entire surface σ is NP -hard.
Read full abstract