Walking in the visibility complex with applications to visibility polygons and dynamic visibility
Résumé
The visibility complex is a data structure that encodes all visibility relations between objects of a scene in the plane. However, in some applications only a subset of these informations is relevant at a time, in particular visibility informations about rays issued from (resp. going to) a given object O. We first consider the set of faces of the complex representing rays issued from a given object. We define an order on these faces and show, once the visibility complex is computed, how to visit all of them with no additional data structure in optimal time O(kf ), where kf is the number of faces visited. Then we show howto use this walk to perform a topological sweep of the vertices incident to these faces in optimal time O(kv), where kv is the number of these vertices, still with no additional data structure. We next consider the set of faces of the complex representing rays issued from the “blue sky” and passing through a line segment s which is outside the convex hull of the scene. We show that the previous algorithms can be adapted simply in this new context, and we use these walks for two applications. First, we show how to compute the visibility polygon of a line segment s = (p, q) outside the convex hull of the scene in O(vis(s)+tv(p)+tv(q)) time, where vis(s) is the size of the visibility polygon and tv(p) (resp. tv(q)) is the time to compute the view around p (resp. q). Second, we show how to maintain the view around a point moving from p to q. Once the view around p is computed, the algorithm has a total running time O(max(v(p), v(p, q))), where v(p) is the size of the view around p and v(p, q) the number of changes of visibility along (p, q). This algorithm is an alternative to those we have described in [Riv97b].
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...