hw2-sol - AMS 345/CSE 355(Fall 2010 Joe Mitchell...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: AMS 345/CSE 355 (Fall, 2010) Joe Mitchell COMPUTATIONAL GEOMETRY Homework Set # 2 – Solution Notes (1). Suppose that you are given a simple polygon P , specified (as usual) as a list of n vertices, v , v 1 , . . . , v n − 1 , given in counterclockwise order about the polygon. Your goal is to find a diagonal of P , any diagonal, v i v j . Describe an efficient algorithm to compute a diagonal, ideally in worst- case linear time, without resorting to computing a triangulation of P . (Since Chazelle’s (highly complex) algorithm computes a triangulation in linear time, we know that it is possible; but much simpler methods are also possible!) Make your algorithm as efficient as possible (ideally O ( n ) ) in the worst case (you need not worry about constants; “efficient” is measured in the usual Big-Oh notation). What is the running time? (While your algorithm need not be written in code, try to write it very clearly and succinctly, step by step.) METHOD 1: We can give a simple linear-time algorithm based on the proof that a simple polygon (with n ≥ 4) has a diagonal (Lemma 1.2.2). First, we find a strictly convex vertex, v , in linear time ( O ( n )) by looping through the vertices of P and finding the one with smallest y- coordinate, breaking ties by picking the one with largest x-coordinate (as in Lemma 1.2.1). Let a be the predecessor of v (in the ccw order about P ) and let b be the successor of v (in the ccw order about P ). Now, we loop through all n − 3 vertices v i negationslash = v, a, b , checking each to see if it lies in the (closed) triangle Δ avb ; we can do this by calling Left( a, v, v i ), Left( v, b, v i ), and LeftOn( b, a, v i ). (Note that v i cannot be on the segment av or the segment vb , but it may lie on the segment ab .) If no such....
View Full Document

{[ snackBarMessage ]}

Page1 / 4

hw2-sol - AMS 345/CSE 355(Fall 2010 Joe Mitchell...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online