Dualization of Divide and Conquer Algorithm for Finding Upper Envelope of Line Arrangements

Naomi Fox

April 4, 2000

Description of the problem:
To translate the method of computing the convex hull of a set of points into a method of computing the upper envelope of a line arrangement.

Dictionary of dual concepts:

  • line arrangement - the dual of a set of points. Partitioning of plaine into vertices, edges, and faces induced by the lines.
  • edge - a ray or segment of a line in a line arrangeme
  • half plane - 'above' or 'below' set of points from plane split by a line
  • upper envelope - dual of lower convex hull of set of points, set of edges of a line arrangement that lie above all other edges in the arrangement
  • above - describes whatever is left of a line with a positive slope, right of a line with a negative slope, and above a line with zero slope
  • below - describes whatever is right of a line with a positive slope, left of a line with a negative slope,and above a line with zero slope.

    Review of divide and conquer algorithm to find convex hull of set of points:
    0. Sort points x-coordinate.
    1. Split the points into 2 sets by x-coordinate.
    2. Recursively complete the Convex Hulls of the 2 sets.
    3. Compute the 2 tangents joining the Convex Hulls.
    4. Discard the interior chains of the 2 Convex Hulls and merge the 2 exterior chains the the 2 tangents to get the Convex Hull.


    Transition to upper envelope of line arrangements:

    0. Sort the lines by slope.
    1. Split the points into 2 sets by slope.
    2. Recursively complete the Upper Envelopes of the 2 sets.
    3. Compute the intersection joining the Upper Envelopes.
    4. Discard the edges which fall below the edges of the adjoined Upper Envelope.


    Example:

    This is a sample line arrangement which I will be using to demonstrate the ddivide and conquer method of computing the upper envelope of a line arrangement. I have here sorted the lines by slope: L1 being the smallest and L6 the largest.

    Please enable Java for an interactive construction (with Cinderella).



    I split the points into the 2 sets:
    1. L1, L2, and L3
    2. L4, L5, and L6

    I then split the first step into 2 sets:
    1. L1 and L2
    2. L3

    And then the first set into 2 sets:
    1. L1
    2. L2

    The upper envelope of a single line is just that line itself.

    Please enable Java for an interactive construction (with Cinderella).

    The intersection of these two lines (which are both also upper envelopes), is where the two envelopes intersect. Whatever edges are below this point of intersection are discarded.
    The upper envelope is in green.

    Please enable Java for an interactive construction (with Cinderella).

    Please enable Java for an interactive construction (with Cinderella).



    The upper envelope of lines 4,5, and 6. Please enable Java for an interactive construction (with Cinderella).



    The intersection of the upper envelopes of the two sets is at point P.
    Please enable Java for an interactive construction (with Cinderella).

    The final upper envelope for this line arrangement.

    Back to home