Skip to Main Content
Computational geometry is very important for solving motion planning problems. Visibility graphs are very useful in determining the shortest path. In this work, a modified Asano's algorithm is implemented for determining the visibility polygons and visibility graphs. Implementation is done using the CGAL library. Although the principle for determining visibility graphs is rather simple, the procedure is very time and space consuming and the goal is to achieve lower algorithm complexity. The algorithm consists of two steps: first, angular sorting of points is done using the dual transformation, and second, visibility between the points is determined. Testing of the algorithm is done on two polygonal test sets. The first is made of squares, uniformly and densely distributed. The second is made of triangles, randomly and sparsely distributed. Results show a cubical complexity of the algorithm, depending on the number of reflex points. The main advantage of this method is that it can be applied in dynamical environments (environments that change in time). It is not required to perform the calculation for all points on the map. Instead, the graph can be refreshed locally so it is very practical for online use.