60
Motivation Line segment intersection Plane sweep Line segment intersection for map overlay Computational Geometry Lecture 2: Line segment intersection for map overlay Computational Geometry Lecture 2: Line segment intersection for map overlay 1

Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

Line segment intersection for map overlay

Computational Geometry

Lecture 2: Line segment intersection

for map overlay

Computational Geometry Lecture 2: Line segment intersection for map overlay1

Page 2: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweepMap overlay

Map layers

In a geographic information system(GIS) data is stored in separatelayers

A layer stores the geometricinformation about some theme, likeland cover, road network,municipality boundaries, red foxhabitat, . . .

Computational Geometry Lecture 2: Line segment intersection for map overlay2

Page 3: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweepMap overlay

Map overlay

Map overlay is the combination oftwo (or more) map layers

It is needed to answer questions like:

What is the total length ofroads through forests?

What is the total area of cornfields within 1km from a river?

What area of all lakes occurs atthe geological soil type “rock”?

Computational Geometry Lecture 2: Line segment intersection for map overlay3

Page 4: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweepMap overlay

Map overlay

To solve map overlay questions, weneed (at the least) intersectionpoints from two sets of line segments(possibly, boundaries of regions)

Computational Geometry Lecture 2: Line segment intersection for map overlay4

Page 5: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

ProblemOutput-sensitive algorithmsSome attempts

The (easy) problem

Let’s first look at the easiest versionof the problem:

Given a set of of n line segments inthe plane, find all intersection pointsefficiently

Computational Geometry Lecture 2: Line segment intersection for map overlay5

Page 6: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

ProblemOutput-sensitive algorithmsSome attempts

An easy, optimal algorithm?

Algorithm FindIntersections(S)Input. A set S of line segments in the plane.Output. The set of intersection points among the segments in S.1. for each pair of line segments ei,ej ∈ S2. do if ei and ej intersect3. then report their intersection point

Question: Why can we say that this algorithm is optimal?

Computational Geometry Lecture 2: Line segment intersection for map overlay6

Page 7: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

ProblemOutput-sensitive algorithmsSome attempts

Computational Geometry Lecture 2: Line segment intersection for map overlay7

Page 8: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

ProblemOutput-sensitive algorithmsSome attempts

Output-sensitive algorithm

The asymptotic running time of analgorithm is always input-sensitive(depends on n)

We may also want the running timeto be output-sensitive: if the outputis large, it is fine to spend a lot oftime, but if the output is small, wewant a fast algorithm

Computational Geometry Lecture 2: Line segment intersection for map overlay8

Page 9: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

ProblemOutput-sensitive algorithmsSome attempts

Intersection points in practice

Question: How many intersectionpoints do we typically expect in ourapplication?

If this number is k, and if k = O(n),it would be nice if the algorithm runsin O(n logn) time

Computational Geometry Lecture 2: Line segment intersection for map overlay9

Page 10: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

ProblemOutput-sensitive algorithmsSome attempts

First attempt

Observation: Two line segmentscan only intersect if their y-spanshave an overlap

So, how about only testing pairs ofline segments that intersect in they-projection?

1D problem: Given a set of intervalson the real line, find all partlyoverlapping pairs

x

y

s1 s2s3 s4 s5 s6

(s1, s2), (s4, s6), (s5, s6)

Computational Geometry Lecture 2: Line segment intersection for map overlay10

Page 11: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

ProblemOutput-sensitive algorithmsSome attempts

First attempt

1D problem: Given a set of intervals on the real line, find all partlyoverlapping pairs

Sort the endpoints and handle them from left to right; maintaincurrently intersected intervals in a balanced search tree T

Left endpoint of si: for each sj in T, report the pair si,sj. Theninsert si in T

Right endpoint of si: delete si from T

Question: Is this algorithm output-sensitive for 1D intervalintersection?

Computational Geometry Lecture 2: Line segment intersection for map overlay11

Page 12: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

ProblemOutput-sensitive algorithmsSome attempts

First attempt

Back to the 2D problem:

Determine the y-intervals of the 2D line segments

Find the intersecting pairs of intervals with the 1D solution

For every pair of intersecting intervals, test whether thecorresponding line segments intersect, and if so, report

Question: Is this algorithm output-sensitive for 2D line segmentintersection?

Computational Geometry Lecture 2: Line segment intersection for map overlay12

Unknown
Page 13: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

ProblemOutput-sensitive algorithmsSome attempts

Second attempt

Refined observation: Two linesegments can only intersect if theiry-spans have an overlap, and theyare adjacent in the x-order at thaty-coordinate (they are horizontalneighbors)

Computational Geometry Lecture 2: Line segment intersection for map overlay13

Page 14: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Plane sweep

The plane sweep technique: Imagine a horizontal linepassing over the plane from top to bottom, solving theproblem as it moves

The sweep line stops and the algorithm computes atcertain positions ⇒ events

The algorithm stores the relevant situation at the currentposition of the sweep line ⇒ status

The algorithm knows everything it needs to know abovethe sweep line, and found all intersection points

Computational Geometry Lecture 2: Line segment intersection for map overlay14

Page 15: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Sweep

computed

unexploredComputational Geometry Lecture 2: Line segment intersection for map overlay15

Page 16: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Sweep and status

computed

unexplored

status

Computational Geometry Lecture 2: Line segment intersection for map overlay16

Page 17: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Status and events

The status of this particular plane sweep algorithm, at thecurrent position of the sweep line, is the set of line segmentsintersecting the sweep line, ordered from left to right

The events occur when the status changes, and when outputis generated

event ≈ interesting y-coordinate

Computational Geometry Lecture 2: Line segment intersection for map overlay17

Page 18: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

s1

s2s3

s4

s6

s5

s7

s8

add s1

Computational Geometry Lecture 2: Line segment intersection for map overlay18

Page 19: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

s1

s2s3

s4

s6

s5

s7

s8

add s2 after s1

Computational Geometry Lecture 2: Line segment intersection for map overlay19

Page 20: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

s1

s2s3

s4

s6

s5

s7

s8

add s3 between s1and s2

Computational Geometry Lecture 2: Line segment intersection for map overlay20

Page 21: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

s1

s2s3

s4

s6

s5

s7

s8

add s4 before s1

Computational Geometry Lecture 2: Line segment intersection for map overlay21

Page 22: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

s1

s2s3

s4

s6

s5

s7

s8

report intersection(s1,s2); swap s1and s3

Computational Geometry Lecture 2: Line segment intersection for map overlay22

Page 23: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

s1

s2s3

s4

s6

s5

s7

s8

remove s2

Computational Geometry Lecture 2: Line segment intersection for map overlay23

Page 24: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

s1

s2s3

s4

s6

s5

s7

s8

remove s1

Computational Geometry Lecture 2: Line segment intersection for map overlay24

Page 25: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

s1

s2s3

s4

s6

s5

s7

s8

add s5 after s3

Computational Geometry Lecture 2: Line segment intersection for map overlay25

Page 26: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

s1

s2s3

s4

s6

s5

s7

s8

report intersection(s3,s4); swap s3and s4

Computational Geometry Lecture 2: Line segment intersection for map overlay26

Page 27: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

. . . and so on . . .

Computational Geometry Lecture 2: Line segment intersection for map overlay27

Page 28: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

The events

When do the events happen? When the sweep line is at

an upper endpoint of a line segment

a lower endpoint of a line segment

an intersection point of a line segment

At each type, the status changes; at the third type output isfound too

Computational Geometry Lecture 2: Line segment intersection for map overlay28

Page 29: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Assume no degenerate cases

We will at first exclude degenerate cases:

No two endpoints have the samey-coordinate

No more than two line segmentsintersect in a point

. . .

Question: Are there more degeneratecases?

Computational Geometry Lecture 2: Line segment intersection for map overlay29

Page 30: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event list and status structure

The event list is an abstract data structure that stores allevents in the order in which they occur

The status structure is an abstract data structure thatmaintains the current status

Here: The status is the subset of currently intersected linesegments in the order of intersection by the sweep line

Computational Geometry Lecture 2: Line segment intersection for map overlay30

Page 31: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Status structure

We use a balanced binary search tree with the line segmentsin the leaves as the status structure

s1 s2s3 s4 s5 s6

s7s8

s1

s2

s3

s4

s5

s6

s7

s1 s2 s3 s4 s5 s6 s7 s8

Computational Geometry Lecture 2: Line segment intersection for map overlay31

Page 32: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Status structure

s1 s2s3 s4 s5 s6

s7s8

s1

s2

s3

s4

s5

s6

s7

s1 s2 s3 s4 s5 s6 s7 s8

s9

Upper endpoint: search, and insertComputational Geometry Lecture 2: Line segment intersection for map overlay32

Page 33: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Status structure

s1 s2s3 s4 s5 s6

s7s8

s1

s2

s3

s4

s5

s6

s7

s1 s2 s3 s4 s5 s6 s7 s8

s9

Upper endpoint: search, and insertComputational Geometry Lecture 2: Line segment intersection for map overlay33

Page 34: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Status structure

s1 s2s3 s4 s5 s6

s7s8

s1

s2

s3

s4

s5

s6

s7

s1 s2

s3

s4 s5 s6 s7 s8

s9

s9

s9

Upper endpoint: search, and insertComputational Geometry Lecture 2: Line segment intersection for map overlay34

Page 35: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Status structure

Sweep line reaches lower endpoint of a line segment: deletefrom the status structure

Sweep line reaches intersection point: swap two leaves in thestatus structure (and update information on the search paths)

Computational Geometry Lecture 2: Line segment intersection for map overlay35

Page 36: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Finding events

Before the sweep algorithm starts, we know all upperendpoint events and all lower endpoint events

But: How do we know intersection point events???(those we were trying to find . . .)

Recall: Two line segments can only intersect if they arehorizontal neighbors

Computational Geometry Lecture 2: Line segment intersection for map overlay36

Page 37: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Finding events

Lemma: Two line segments si and sj canonly intersect after (= below) they havebecome horizontal neighbors

Proof: Just imagine that the sweep line isever so slightly above the intersection pointof si and sj, but below any other event �

Also: some earlier (= higher) event madesi and sj horizontally adjacent!!!

sisj

sisj

Computational Geometry Lecture 2: Line segment intersection for map overlay37

Page 38: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event list

The event list must be a balanced binary search tree, becauseduring the sweep, we discover new events that will happenlater

We know upper endpoint events and lower endpoint eventsbeforehand; we find intersection point events when theinvolved line segments become horizontal neighbors

Computational Geometry Lecture 2: Line segment intersection for map overlay38

Page 39: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Structure of sweep algorithm

Algorithm FindIntersections(S)Input. A set S of line segments in the plane.Output. The intersection points of the segments in S, with for

each intersection point the segments that contain it.1. Initialize an empty event queue Q. Insert the segment

endpoints into Q; when an upper endpoint is inserted,the corresponding segment should be stored with it

2. Initialize an empty status structure T3. while Q is not empty4. do Determine next event point p in Q and delete it5. HandleEventPoint(p)

Computational Geometry Lecture 2: Line segment intersection for map overlay39

Page 40: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event handling

If the event is an upper endpointevent, and s is the line segment thatstarts at p:

1 Search with p in T, and insert s2 If s intersects its left neighbor in

T, then determine theintersection point and insert in Q

3 If s intersects its right neighbor inT, then determine theintersection point and insert in Q

p

s

Computational Geometry Lecture 2: Line segment intersection for map overlay40

Page 41: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event handling

If the event is a lower endpointevent, and s is the line segment thatends at p:

1 Search with p in T, and delete s2 Let sl and sr be the left and

right neighbors of s in T (beforedeletion). If they intersectbelow the sweep line, then inserttheir intersection point as anevent in Q

p

s

Computational Geometry Lecture 2: Line segment intersection for map overlay41

Page 42: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event handling

If the event is an intersection pointevent where s and s′ intersect at p:

1 . . .

2 . . .

3 . . .

4 . . .

p

s s′

Computational Geometry Lecture 2: Line segment intersection for map overlay42

Page 43: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event handling

If the event is an intersection pointevent where s and s′ intersect at p:

1 Exchange s and s′ in T2 . . .

3 . . .

4 . . .

p

s s′

Computational Geometry Lecture 2: Line segment intersection for map overlay43

Page 44: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event handling

If the event is an intersection pointevent where s and s′ intersect at p:

1 Exchange s and s′ in T2 If s′ and its new left neighbor in

T intersect below the sweepline, then insert this intersectionpoint in Q

3 . . .

4 . . .

p

s s′

Computational Geometry Lecture 2: Line segment intersection for map overlay44

Page 45: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event handling

If the event is an intersection pointevent where s and s′ intersect at p:

1 Exchange s and s′ in T2 If s′ and its new left neighbor in

T intersect below the sweepline, then insert this intersectionpoint in Q

3 If s and its new right neighborin T intersect below the sweepline, then insert this intersectionpoint in Q

4 . . .

p

s s′

Computational Geometry Lecture 2: Line segment intersection for map overlay45

Page 46: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event handling

If the event is an intersection pointevent where s and s′ intersect at p:

1 Exchange s and s′ in T2 If s′ and its new left neighbor in

T intersect below the sweepline, then insert this intersectionpoint in Q

3 If s and its new right neighborin T intersect below the sweepline, then insert this intersectionpoint in Q

4 Report the intersection point

p

s s′

Computational Geometry Lecture 2: Line segment intersection for map overlay46

Page 47: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Event handling

p

s

s′

Can it be that newhorizontal neighbors alreadyintersected above the sweepline?

Can it be that we insert anewly detected intersectionpoint event, but it alreadyoccurs in Q?

Computational Geometry Lecture 2: Line segment intersection for map overlay47

Page 48: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Efficiency

How much time to handle an event?

At most one search in T and/or one insertion, deletion, orswap

At most twice finding a neighbor in T

At most one deletion from and two insertions in Q

Since T and Q are balanced binary search trees, handling anevent takes only O(logn) time

Computational Geometry Lecture 2: Line segment intersection for map overlay48

Unknown
Unknown
Unknown
Unknown
Unknown
Unknown
Page 49: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Efficiency

How many events?

2n for the upper and lower endpoints

k for the intersection points, if there are k of them

In total: O(n+ k) events

Computational Geometry Lecture 2: Line segment intersection for map overlay49

Page 50: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Efficiency

Initialization takes O(n logn) time (to put all upper and lowerendpoint events in Q)

Each of the O(n+ k) events takes O(logn) time

The algorithm takes O(n logn+ k logn) time

If k = O(n), then this is O(n logn)

Note that if k is really large, the brute force O(n2) timealgorithm is more efficient

Computational Geometry Lecture 2: Line segment intersection for map overlay50

Unknown
Page 51: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Efficiency

Question: How much storage does the algorithm take?

Computational Geometry Lecture 2: Line segment intersection for map overlay51

Page 52: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Efficiency

Question: Given that the event list is a binary tree that maystore O(k) = O(n2) events, is the efficiency in jeopardy?

Computational Geometry Lecture 2: Line segment intersection for map overlay52

Page 53: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Degenerate cases

How do we deal with degenerate cases?

For two different events with the same y-coordinate, we treatthem from left to right ⇒ the “upper” endpoint of ahorizontal line segment is its left endpoint

Computational Geometry Lecture 2: Line segment intersection for map overlay53

Page 54: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Degenerate cases

How about multiply coinciding event points?

p

Let U(p) and L(p) be the line segments that have p as upperand lower endpoint, and C(p) the ones that contain p

Question: How do we handle this multi-event?

Computational Geometry Lecture 2: Line segment intersection for map overlay54

Page 55: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Degenerate cases

How efficiently is such a multi-event point handled?

If |U(p)|+ |L(p)|+ |C(p)|= m, then the event takesO(m logn) time

What do we report?

The intersection point itself

Every pair of intersecting line segments

The intersection point and every line segment involved

Question: What is the output size in each of these threecases?

Computational Geometry Lecture 2: Line segment intersection for map overlay55

Page 56: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Degenerate cases

Output size in case we report

the intersection point itself: O(1)

every pair of intersecting line segments: O(m2)

the intersection point and every line segment involved:O(m)

Computational Geometry Lecture 2: Line segment intersection for map overlay56

Page 57: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Degenerate cases

Since m = O(n), does this imply that the whole algorithmtakes O(k) ·O(m logn) = O(k) ·O(n logn) = O(nk logn) time?

No, we can bound ∑m over all intersections by the number ofedges that arise in the subdivision: Note ∑m≤ 2E

Euler’s formula gives V−E+F ≥ 2 for the subdivisioninduced by the line segments

Computational Geometry Lecture 2: Line segment intersection for map overlay57

Page 58: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Degenerate cases

Every face has at least 3 edges and every edge contributes toexactly 2 faces, so 2E ≥ 3F

Combine with Euler’s formula V−E+F ≥ 2, and we get:E ≤ 3V−6

Note V ≤ 2n+ I with I intersections, so E ≤ 6n+3I−6

We get ∑m≤ 2E ≤ 12n+6I−12

Computational Geometry Lecture 2: Line segment intersection for map overlay58

Page 59: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Result

For any set of n line segments in the plane, all I intersectionscan be computed in O(n logn+ I logn) time, and within thistime bound, we can report for every intersection which linesegments are involved

Computational Geometry Lecture 2: Line segment intersection for map overlay59

Page 60: Lecture 2: Line segment intersection for map overlayyunus.hacettepe.edu.tr/.../slides/slides2a.pdf · 1 Computational Geometry Lecture 2: Line segment intersection for map overlay

MotivationLine segment intersection

Plane sweep

IntroductionEvents, status, structuresEvent handlingEfficiency

Conclusion

For every sweep algorithm:

Define the status

Choose the status structure and the event list

Figure out how events must be handled (with sketches!)

To analyze, determine the number of events and howmuch time they take

Then deal with degeneracies and incorporate them carefully

Computational Geometry Lecture 2: Line segment intersection for map overlay60

Unknown
n adet doğru parçasından oluşan bir S kümesi verildiğinde, S kümesinden en fazla doğru parçasıyla kesişen bir l doğrusunu nasıl bulabilirsiniz? Yönteminizin çalışma zamanını irdeleyin.