yazd univ. line segment intersection computational...

68
Yazd Univ. Computational Geometry Line Segment Intersection Motivation Problem Plane sweep algorithm Lemma 2.2 Lemma 2.3 Line Segment Intersection 1393-1 1 / 28

Upload: others

Post on 17-Mar-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Line Segment Intersection

1393-1

1 / 28

Page 2: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

MotivationThematic Map Overlay

2 / 28

Page 3: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

MotivationThematic Map Overlay

3 / 28

Page 4: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

MotivationThematic Map Overlay

3 / 28

Page 5: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Problem

Line segment intersection problem:Given two sets of line segments, compute allintersections between a segment from one set and asegment from the other.

? We consider the segments to be closed.

Simplified version:

Given a set S of n closed segmentsin the plane, report all intersectionpoints among the segments in S.

4 / 28

Page 6: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Problem

Line segment intersection problem:Given two sets of line segments, compute allintersections between a segment from one set and asegment from the other.

? We consider the segments to be closed.

Simplified version:

Given a set S of n closed segmentsin the plane, report all intersectionpoints among the segments in S.

4 / 28

Page 7: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

1st algorithm

The brute-force algorithm clearly requires O(n2)time.In a sense this is optimal: when each pair ofsegments intersects any algorithm must take Ω(n2)time, because it has to report all intersections.

5 / 28

Page 8: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

1st algorithm

The brute-force algorithm clearly requires O(n2)time.In a sense this is optimal: when each pair ofsegments intersects any algorithm must take Ω(n2)time, because it has to report all intersections.

n/2 lines

n/2lines

5 / 28

Page 9: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Output sensitive algorithm

Definition:An algorithm whose running time depends not only on thenumber of segments in the input, but also on the numberof intersection points.

In our case:We want an algorithm that runs faster when the numberof intersections is sub-quadratic.

6 / 28

Page 10: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Output sensitive algorithm

Definition:An algorithm whose running time depends not only on thenumber of segments in the input, but also on the numberof intersection points.

In our case:We want an algorithm that runs faster when the numberof intersections is sub-quadratic.

6 / 28

Page 11: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithm

y-intervalsDefine the y-interval of a segmentto be its orthogonal projection ontothe y-axis.When the y-intervals of a pair ofsegments do not overlap then theycannot intersect.To find segments whose y-intervalsoverlap we use a Plane sweepalgorithm.

y

x

7 / 28

Page 12: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmPlane sweep algorithm

We imagine sweeping a line ` downwards over theplane, starting from a position above all segments.While we sweep the imaginary line, we keep track ofall segments intersecting it so that we can find thepairs we need.The status of the sweep line is the set of segmentsintersecting it.

`

8 / 28

Page 13: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmPlane sweep algorithm

We imagine sweeping a line ` downwards over theplane, starting from a position above all segments.While we sweep the imaginary line, we keep track ofall segments intersecting it so that we can find thepairs we need.The status of the sweep line is the set of segmentsintersecting it.

event point

`

sweep line

8 / 28

Page 14: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmPlane sweep algorithm

We imagine sweeping a line ` downwards over theplane, starting from a position above all segments.While we sweep the imaginary line, we keep track ofall segments intersecting it so that we can find thepairs we need.The status of the sweep line is the set of segmentsintersecting it.

event point

`

sweep line

8 / 28

Page 15: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithm

when the sweep line reaches an event point:If the event point is the upper endpoint of a segment,then a new segment starts intersecting the sweepline and must be added to the status.If the event point is a lower endpoint, a segmentstops intersecting the sweep line and must bedeleted from the status.The algorithm tests pairs of segments for which thereis a horizontal line that intersects both segments.(better than brute-force but still quadratic).

9 / 28

Page 16: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithm

when the sweep line reaches an event point:If the event point is the upper endpoint of a segment,then a new segment starts intersecting the sweepline and must be added to the status.If the event point is a lower endpoint, a segmentstops intersecting the sweep line and must bedeleted from the status.The algorithm tests pairs of segments for which thereis a horizontal line that intersects both segments.(better than brute-force but still quadratic).

9 / 28

Page 17: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithm

when the sweep line reaches an event point:If the event point is the upper endpoint of a segment,then a new segment starts intersecting the sweepline and must be added to the status.If the event point is a lower endpoint, a segmentstops intersecting the sweep line and must bedeleted from the status.The algorithm tests pairs of segments for which thereis a horizontal line that intersects both segments.(better than brute-force but still quadratic).

9 / 28

Page 18: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmNew algorithm:

Status: Sorted list of segments (from left to right asthey intersect the sweep line).Test adjacent segments in the horizontal ordering forintersection.To maintain the status (sorted list), we need to takecare of new event points.

10 / 28

Page 19: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmNew algorithm:

Status: Sorted list of segments (from left to right asthey intersect the sweep line).Test adjacent segments in the horizontal ordering forintersection.To maintain the status (sorted list), we need to takecare of new event points.

10 / 28

Page 20: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmNew algorithm:

Status: Sorted list of segments (from left to right asthey intersect the sweep line).Test adjacent segments in the horizontal ordering forintersection.To maintain the status (sorted list), we need to takecare of new event points.

new neighbors

sj sksl sm

`

10 / 28

Page 21: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmDo we still find all intersections?Lemma 2.1 Let si and sj be two non-horizontal segmentswhose interiors intersect in a single point p, and assumethere is no third segment passing through p. Then thereis an event point above p where si and sj becomeadjacent and are tested for intersection.

11 / 28

Page 22: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmDo we still find all intersections?Lemma 2.1 Let si and sj be two non-horizontal segmentswhose interiors intersect in a single point p, and assumethere is no third segment passing through p. Then thereis an event point above p where si and sj becomeadjacent and are tested for intersection.

sisj

p

`

11 / 28

Page 23: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmHandling event points:The event point is the upper endpoint of a segment:

Insert the new segment in the sorted list.Check for intersection between the new segment andthe segment before and after it in the sorted list.

12 / 28

Page 24: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmHandling event points:The event point is the upper endpoint of a segment:

Insert the new segment in the sorted list.Check for intersection between the new segment andthe segment before and after it in the sorted list.

intersectiondetected

sisj

sk`

12 / 28

Page 25: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmHandling event points:The event point is an intersection:

Change the order of intersected segments in thesorted list.For each intersected segment, check for intersectionbetween the segment and the new neighbor in thesorted list.

13 / 28

Page 26: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmHandling event points:The event point is an intersection:

Change the order of intersected segments in thesorted list.For each intersected segment, check for intersectionbetween the segment and the new neighbor in thesorted list.

sj sk sl sm `

13 / 28

Page 27: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmHandling event points:The event point is a lower endpoint of a segment:

Remove the segments from the sorted list.check for intersection between the neighboringsegments.

14 / 28

Page 28: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmHandling event points:The event point is a lower endpoint of a segment:

Remove the segments from the sorted list.check for intersection between the neighboringsegments.

sk sl sm `

14 / 28

Page 29: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmA data structure for handling event:We need an event queue Q such that:

1 find and removes the next event that will occurfrom Q. If two event points have the samey-coordinate, then the one with smaller x-coordinatewill be returned.

2 Insert an event point in Q. An insertion must be ableto check whether an event is already present in Q.

15 / 28

Page 30: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmA data structure for handling event:We need an event queue Q such that:

1 find and removes the next event that will occurfrom Q. If two event points have the samey-coordinate, then the one with smaller x-coordinatewill be returned.

2 Insert an event point in Q. An insertion must be ableto check whether an event is already present in Q.

15 / 28

Page 31: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmImplementation of the event queue:

1 Define an order ≺ on event points: p ≺ q if and only ifpy > qy holds or py = qy and px < qx holds.

2 We store the event points in a balanced binarysearch tree, ordered according to ≺.

3 Fetching the next event and inserting an event andtesting whether a given event is already present in Qtake O(logm) time, where m is the number of eventsin Q.

16 / 28

Page 32: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmImplementation of the event queue:

1 Define an order ≺ on event points: p ≺ q if and only ifpy > qy holds or py = qy and px < qx holds.

2 We store the event points in a balanced binarysearch tree, ordered according to ≺.

3 Fetching the next event and inserting an event andtesting whether a given event is already present in Qtake O(logm) time, where m is the number of eventsin Q.

16 / 28

Page 33: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmImplementation of the event queue:

1 Define an order ≺ on event points: p ≺ q if and only ifpy > qy holds or py = qy and px < qx holds.

2 We store the event points in a balanced binarysearch tree, ordered according to ≺.

3 Fetching the next event and inserting an event andtesting whether a given event is already present in Qtake O(logm) time, where m is the number of eventsin Q.

16 / 28

Page 34: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmTo maintain the sorted list of segments (status of thealgorithm):

1 The status structure must be dynamic: segmentsmust be inserted into or deleted from the structure.

2 We use a balanced binary search tree as statusstructure.

3 At each internal node, we store the segment from therightmost leaf in its left subtree.

17 / 28

Page 35: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmTo maintain the sorted list of segments (status of thealgorithm):

1 The status structure must be dynamic: segmentsmust be inserted into or deleted from the structure.

2 We use a balanced binary search tree as statusstructure.

3 At each internal node, we store the segment from therightmost leaf in its left subtree.

si sj sk sl sm `

T sk

si sl

sisj

sj sk

sl sm

17 / 28

Page 36: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmTo maintain the sorted list of segments (status of thealgorithm):

1 The status structure must be dynamic: segmentsmust be inserted into or deleted from the structure.

2 We use a balanced binary search tree as statusstructure.

3 At each internal node, we store the segment from therightmost leaf in its left subtree.

si sj sk sl sm `

T sk

si sl

sisj

sj sk

sl sm

17 / 28

Page 37: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmTo search in T for the segment immediately to theleft of some point p:

1 Traverse the tree until you meet a leaf.2 This leaf, or the leaf immediately to the left of it,

stores the segment we are searching for.3 Therefore each update and neighbor search

operation takes O(log n) time.

18 / 28

Page 38: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmTo search in T for the segment immediately to theleft of some point p:

1 Traverse the tree until you meet a leaf.2 This leaf, or the leaf immediately to the left of it,

stores the segment we are searching for.3 Therefore each update and neighbor search

operation takes O(log n) time.

si sj sk sl sm `

T sk

si sl

sisj

sj sk

sl sm

18 / 28

Page 39: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep 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, with for each intersection point thesegments that contain it.

1. Initialize an empty event queue Q. Next, insert thesegment endpoints into Q; when an upper endpointis inserted, the corresponding segment should bestored with it.

2. Initialize an empty status structure T .3. while Q is not empty4. Determine the next event point p in Q and

delete it.5. HANDLEEVENTPOINT(p)

19 / 28

Page 40: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmAlgorithm HANDLEEVENTPOINT(p)1. U(p)←segments whose upper endpoint is p;2. Find all segments stored in T that contain p;

L(p)←segments found whose lower endpoint is p;C(p)←segments found that contain p in their interior.

3. if |L(p) ∪ U(p) ∪ C(p)| > 14. then Report p as an intersection, together with

L(p), U(p), and C(p).5. Delete the segments in L(p) ∪ C(p) from T .6. Insert the segments in U(p) ∪ C(p) into T .7. if U(p) ∪ C(p) == ∅8. then sl and sr ←the left and right neighbors of p in T .9. FINDNEWEVENT(sl, sr, p)10. else s′←the leftmost segment of U(p) ∪ C(p) in T .

sl←the left neighbor of s′ in T .11. FINDNEWEVENT(sl, s

′, p)12. s′′←the rightmost segment of U(p) ∪ C(p) in T .13. sr ←the right neighbor of s′′ in T .14. FINDNEWEVENT(s′′, sr, p)

20 / 28

Page 41: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithm

Algorithm FINDNEWEVENT(sl, sr, p)1. if sl and sr intersect below the sweep line, or on it

and to the right of the current event point p, and theintersection is not yet present as an event in Q

2. then Insert the intersection point as an eventinto Q.

21 / 28

Page 42: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithm

T

s1s3

s8

`

s1s2

s3

s7

s5

s4

T

s1

s1

s1

s1

s3

s3

s3

s3

s4

s4s5

s5

s2

s7

s7

s7

s7

s8

s8

s2

22 / 28

Page 43: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.2Algorithm FINDINTERSECTIONS computes all intersectionpoints and the segments that contain it correctly.

Proof. (By induction on priority of points)p: An intersection point.Induction hypothesis: All intersection points q ≺ phave been computed correctly.Claim: p is computed correctly.Case 1: p is an endpoint of one or more of thesegments.Easy!Case 2: p is NOT an endpoint.We show that p will be inserted into Q at somemoment.Following the proof of Lemma 2.1.

23 / 28

Page 44: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.2Algorithm FINDINTERSECTIONS computes all intersectionpoints and the segments that contain it correctly.

Proof. (By induction on priority of points)p: An intersection point.Induction hypothesis: All intersection points q ≺ phave been computed correctly.Claim: p is computed correctly.Case 1: p is an endpoint of one or more of thesegments.Easy!Case 2: p is NOT an endpoint.We show that p will be inserted into Q at somemoment.Following the proof of Lemma 2.1.

23 / 28

Page 45: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.2Algorithm FINDINTERSECTIONS computes all intersectionpoints and the segments that contain it correctly.

Proof. (By induction on priority of points)p: An intersection point.Induction hypothesis: All intersection points q ≺ phave been computed correctly.Claim: p is computed correctly.Case 1: p is an endpoint of one or more of thesegments.Easy!Case 2: p is NOT an endpoint.We show that p will be inserted into Q at somemoment.Following the proof of Lemma 2.1.

23 / 28

Page 46: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.2Algorithm FINDINTERSECTIONS computes all intersectionpoints and the segments that contain it correctly.

Proof. (By induction on priority of points)p: An intersection point.Induction hypothesis: All intersection points q ≺ phave been computed correctly.Claim: p is computed correctly.Case 1: p is an endpoint of one or more of thesegments.Easy!Case 2: p is NOT an endpoint.We show that p will be inserted into Q at somemoment.Following the proof of Lemma 2.1.

23 / 28

Page 47: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.2Algorithm FINDINTERSECTIONS computes all intersectionpoints and the segments that contain it correctly.

Proof. (By induction on priority of points)p: An intersection point.Induction hypothesis: All intersection points q ≺ phave been computed correctly.Claim: p is computed correctly.Case 1: p is an endpoint of one or more of thesegments.Easy!Case 2: p is NOT an endpoint.We show that p will be inserted into Q at somemoment.Following the proof of Lemma 2.1.

23 / 28

Page 48: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.2Algorithm FINDINTERSECTIONS computes all intersectionpoints and the segments that contain it correctly.

Proof. (By induction on priority of points)p: An intersection point.Induction hypothesis: All intersection points q ≺ phave been computed correctly.Claim: p is computed correctly.Case 1: p is an endpoint of one or more of thesegments.Easy!Case 2: p is NOT an endpoint.We show that p will be inserted into Q at somemoment.Following the proof of Lemma 2.1.

23 / 28

Page 49: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.Constructing the event queue on the segmentendpoints: O(n log n) time.Initializing the status structure: O(1) time.Deletions and insertions on Q: O(log n) time each.Insert, delete, and neighbor finding on T : O(log n)time each.#oper. for p: O(m(p)) (m(p) := card (L(p) ∪ U(p) ∪ C(p))

If m =∑

pm(p) then complexity= O(m log n).m = O(n + k). (k : output size (points+lines)).

24 / 28

Page 50: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.Constructing the event queue on the segmentendpoints: O(n log n) time.Initializing the status structure: O(1) time.Deletions and insertions on Q: O(log n) time each.Insert, delete, and neighbor finding on T : O(log n)time each.#oper. for p: O(m(p)) (m(p) := card (L(p) ∪ U(p) ∪ C(p))

If m =∑

pm(p) then complexity= O(m log n).m = O(n + k). (k : output size (points+lines)).

24 / 28

Page 51: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.Constructing the event queue on the segmentendpoints: O(n log n) time.Initializing the status structure: O(1) time.Deletions and insertions on Q: O(log n) time each.Insert, delete, and neighbor finding on T : O(log n)time each.#oper. for p: O(m(p)) (m(p) := card (L(p) ∪ U(p) ∪ C(p))

If m =∑

pm(p) then complexity= O(m log n).m = O(n + k). (k : output size (points+lines)).

24 / 28

Page 52: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.Constructing the event queue on the segmentendpoints: O(n log n) time.Initializing the status structure: O(1) time.Deletions and insertions on Q: O(log n) time each.Insert, delete, and neighbor finding on T : O(log n)time each.#oper. for p: O(m(p)) (m(p) := card (L(p) ∪ U(p) ∪ C(p))

If m =∑

pm(p) then complexity= O(m log n).m = O(n + k). (k : output size (points+lines)).

24 / 28

Page 53: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.Constructing the event queue on the segmentendpoints: O(n log n) time.Initializing the status structure: O(1) time.Deletions and insertions on Q: O(log n) time each.Insert, delete, and neighbor finding on T : O(log n)time each.#oper. for p: O(m(p)) (m(p) := card (L(p) ∪ U(p) ∪ C(p))

If m =∑

pm(p) then complexity= O(m log n).m = O(n + k). (k : output size (points+lines)).

24 / 28

Page 54: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.Constructing the event queue on the segmentendpoints: O(n log n) time.Initializing the status structure: O(1) time.Deletions and insertions on Q: O(log n) time each.Insert, delete, and neighbor finding on T : O(log n)time each.#oper. for p: O(m(p)) (m(p) := card (L(p) ∪ U(p) ∪ C(p))

If m =∑

pm(p) then complexity= O(m log n).m = O(n + k). (k : output size (points+lines)).

24 / 28

Page 55: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.Constructing the event queue on the segmentendpoints: O(n log n) time.Initializing the status structure: O(1) time.Deletions and insertions on Q: O(log n) time each.Insert, delete, and neighbor finding on T : O(log n)time each.#oper. for p: O(m(p)) (m(p) := card (L(p) ∪ U(p) ∪ C(p))

If m =∑

pm(p) then complexity= O(m log n).m = O(n + k). (k : output size (points+lines)).

24 / 28

Page 56: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.Constructing the event queue on the segmentendpoints: O(n log n) time.Initializing the status structure: O(1) time.Deletions and insertions on Q: O(log n) time each.Insert, delete, and neighbor finding on T : O(log n)time each.#oper. for p: O(m(p)) (m(p) := card (L(p) ∪ U(p) ∪ C(p))

If m =∑

pm(p) then complexity= O(m log n).m = O(n + k). (k : output size (points+lines)).

24 / 28

Page 57: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.(Claim:) m = O(n + I). (I : # intersections).Consider the segments as a planar graph.nv : # vertices, ne : # edges, nf : #facesm(p) = degree(p)⇒ m =

∑pm(p) = 2ne.

nv ≤ 2n + I, nf ≤ 2ne/3

Euler’s Formula: nv − ne + nf ≥ 2.2 ≤ nv − ne + nf

≤ 2n + I − ne + 2ne/3

⇒ ne ≤ 6n + 3I − 6⇒ m ≤ 12n + 6I − 12.

25 / 28

Page 58: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.(Claim:) m = O(n + I). (I : # intersections).Consider the segments as a planar graph.nv : # vertices, ne : # edges, nf : #facesm(p) = degree(p)⇒ m =

∑pm(p) = 2ne.

nv ≤ 2n + I, nf ≤ 2ne/3

Euler’s Formula: nv − ne + nf ≥ 2.2 ≤ nv − ne + nf

≤ 2n + I − ne + 2ne/3

⇒ ne ≤ 6n + 3I − 6⇒ m ≤ 12n + 6I − 12.

25 / 28

Page 59: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.(Claim:) m = O(n + I). (I : # intersections).Consider the segments as a planar graph.nv : # vertices, ne : # edges, nf : #facesm(p) = degree(p)⇒ m =

∑pm(p) = 2ne.

nv ≤ 2n + I, nf ≤ 2ne/3

Euler’s Formula: nv − ne + nf ≥ 2.2 ≤ nv − ne + nf

≤ 2n + I − ne + 2ne/3

⇒ ne ≤ 6n + 3I − 6⇒ m ≤ 12n + 6I − 12.

edge

vertex

face

disconnectedsubdivision

25 / 28

Page 60: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.(Claim:) m = O(n + I). (I : # intersections).Consider the segments as a planar graph.nv : # vertices, ne : # edges, nf : #facesm(p) = degree(p)⇒ m =

∑pm(p) = 2ne.

nv ≤ 2n + I, nf ≤ 2ne/3

Euler’s Formula: nv − ne + nf ≥ 2.2 ≤ nv − ne + nf

≤ 2n + I − ne + 2ne/3

⇒ ne ≤ 6n + 3I − 6⇒ m ≤ 12n + 6I − 12.

25 / 28

Page 61: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.(Claim:) m = O(n + I). (I : # intersections).Consider the segments as a planar graph.nv : # vertices, ne : # edges, nf : #facesm(p) = degree(p)⇒ m =

∑pm(p) = 2ne.

nv ≤ 2n + I, nf ≤ 2ne/3

Euler’s Formula: nv − ne + nf ≥ 2.2 ≤ nv − ne + nf

≤ 2n + I − ne + 2ne/3

⇒ ne ≤ 6n + 3I − 6⇒ m ≤ 12n + 6I − 12.

25 / 28

Page 62: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.(Claim:) m = O(n + I). (I : # intersections).Consider the segments as a planar graph.nv : # vertices, ne : # edges, nf : #facesm(p) = degree(p)⇒ m =

∑pm(p) = 2ne.

nv ≤ 2n + I, nf ≤ 2ne/3

Euler’s Formula: nv − ne + nf ≥ 2.2 ≤ nv − ne + nf

≤ 2n + I − ne + 2ne/3

⇒ ne ≤ 6n + 3I − 6⇒ m ≤ 12n + 6I − 12.

25 / 28

Page 63: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.(Claim:) m = O(n + I). (I : # intersections).Consider the segments as a planar graph.nv : # vertices, ne : # edges, nf : #facesm(p) = degree(p)⇒ m =

∑pm(p) = 2ne.

nv ≤ 2n + I, nf ≤ 2ne/3

Euler’s Formula: nv − ne + nf ≥ 2.2 ≤ nv − ne + nf

≤ 2n + I − ne + 2ne/3

⇒ ne ≤ 6n + 3I − 6⇒ m ≤ 12n + 6I − 12.

25 / 28

Page 64: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmLemma 2.3The running time of Algorithm FINDINTERSECTIONS isO((n + I) log n), where I = # intersections.

Proof.(Claim:) m = O(n + I). (I : # intersections).Consider the segments as a planar graph.nv : # vertices, ne : # edges, nf : #facesm(p) = degree(p)⇒ m =

∑pm(p) = 2ne.

nv ≤ 2n + I, nf ≤ 2ne/3

Euler’s Formula: nv − ne + nf ≥ 2.2 ≤ nv − ne + nf

≤ 2n + I − ne + 2ne/3

⇒ ne ≤ 6n + 3I − 6⇒ m ≤ 12n + 6I − 12.

25 / 28

Page 65: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmSpace Complexity:O(n + I) (size of the event queue)Can be improved to O(n): only store intersectionpoints of pairs of segments that are currentlyadjacent on the sweep line.

26 / 28

Page 66: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmSpace Complexity:O(n + I) (size of the event queue)Can be improved to O(n): only store intersectionpoints of pairs of segments that are currentlyadjacent on the sweep line.

s1

`

s2s3

s4

s5

26 / 28

Page 67: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

Plane sweep algorithmTheorem 2.4Let S be a set of n line segments in the plane. Allintersection points in S, with for each intersection pointthe segments involved in it, can be reported inO(n log n + I log n) time and O(n) space, where I is thenumber of intersection points.

27 / 28

Page 68: Yazd Univ. Line Segment Intersection Computational ...cs.yazd.ac.ir/farshi/Teaching/CG3931/Slides/Line-segment-inter.pdf · Computational Geometry Line Segment Intersection Motivation

Yazd Univ.

ComputationalGeometry

Line SegmentIntersectionMotivation

Problem

Plane sweep algorithm

Lemma 2.2

Lemma 2.3

28 / 28