This thesis is concerned with the notion of d-visibility in a simple polygon. Two points in a simple polygon P are said to be d-visible if the line segment l joining them is contained in P and the length of l is d or less. In applications such as computer graphics and robot vision, the notion of d-visibility is more suitable than the commonly used definition of visibility which is equivalent to d-visibility with infinite d.
First, we consider the problem concerning the point d-visibility. The d-kernel of P, denoted by d-K(P), is the set of all points in P such that every point in P is d-visible from any point in d-K(P). We present an algorithm for finding d-K(P), if any. We also present an algorithm for computing the minimum distance d, if any, such that d-K(P) is not empty. We show that these algorithms can be run in O(n) time, where n is the number of vertices.
Second, we consider the problem concerning the edge d-visibility. We develop an algorithm for finding the edge d-visibility polygon from an edge e in P and an algorithm for computing the minimum $d_e$ for an edge e in P such that P is edge $d_e$-visible from e. Both algorithms run in time linear in the number of vertices in P.
Third, we consider the externally d-visibility problems. Two points are said to be externally d-visible each other if the line segment l joining them does not intersect the interior of a polygon and the length of l is d or less. We present an algorithm for computing externally d-visible boundary edges of a set of nonoverlapping simple polygons from a point in the exterior of the polygons. It runs in O(n + clog m) time, where n is the total number of vertices, m is the number of polygons and c is the number of maximal sequences of connected edges.