hull convex algorithm code example

Example: what is convex hull

#Let p_0 be the point in G with the smallest y-coordinate. In case there is a tie, it is the left most element.
#Let {p_1, p_2, ... ,p_m } be the set of remaining point in G, sorted by polar angle in clock wise order around p_0( if more than one point has the same angle, remove all but the one that is farthest from p_0)
Stack S
S.push(p_0)
S.push(p_1)
S.push(p_2)
function next_to_top(stack)
   returns the point one entry below the top of the stack S
function top(stack)
  returns the top point of a stack



for i <- 3 to m
        do while the angle formed by points next_to_top(S), top(s), and p_i make a turn which is not left(either straight or to the right)
                do S.pop()
             S.push(p_i,S)
return S

Tags:

Misc Example