An approximation algorithm for computing the visibility region of a point on a terrain and visibility testing

Given a terrain and a query point p on or above it, we want to count the number of triangles of terrain that are visible from p. We present an approximation algorithm to solve this problem. We implement the algorithm and then we run it on the real data sets. The experimental results show that our approximation solution is very close to the real solution and compare to the other similar works, the running time of our algorithm is better than their algorithm. The analysis of time complexity of algorithm is also presented. Also, we consider visibility testing problem, where the goal is to test whether p and a given triangle of train are visible or not. We propose an algorithm for this problem and show that the average running time of this algorithm will be the same as running time of the case where we want to test the visibility between two query point p and q.