Introduction to Computational Geometry Hackson Leung@HW311.

Post on 13-Jan-2016

223 views 0 download

Transcript of Introduction to Computational Geometry Hackson Leung@HW311.

Introduction to Computational GeometryHackson Leung@HW311

Agenda• Dot, Line and Plane

• Cartesian Coordinate System

• Straight Line and Segment

• Distance – how to measure?

• Cartesian Coordinate Geometry

• Vector Geometry

• Intersections

• Polygons

DOT, LINE AND PLANETo begin with

Geometry• ``Geometry (Greek γεωμετρία; geo = earth,

metria = measure) is a part of mathematics concerned with questions of size, shape, and relative position of figures and with properties of space.’’ – Wikipedia

• What to deal with?• Lines• Polygons• Planes• Objects (in N dimensional!)

Geometry

Simple geometry revisit• 1-Dimensional

• Simply R • a single point and line only• e.g. Number Line

• 2-Dimensional• 2-tuple (a.k.a. pair)• Can represent point, line and plane

• 3-Dimensional• 3-tuple (a.k.a. Triple)• Can represent…?

Computational Geometry• Adopt algorithmic approach to solve problems

in terms of geometry• e.g. List out all possible distinct intersection points,

given several lines

• In this session, we only focus on 2-D geometry only• Further info can be found at ``Advanced

Computational Geometry’’

CARTESIAN COORDINATESYSTEM

You must have learnt it in Mathematics

Cartesian Coordinate System• Terminologies

• Don’t tell me that you don’t know them!y-axis

x-axis

A point with +ve x and y coordinates

Cartesian Coordinate System• Terminologies

• Don’t tell me that you don’t know them!y-axis

x-axis

A straight line with negative slope, passing through origin

Cartesian Coordinate System• Terminologies

• Don’t tell me that you don’t know them!y-axis

x-axis

A regular pentagon

Cartesian Coordinate System

y-axis

x-axis

• You may not know this

Two straight lines intersecting at one point

Cartesian Coordinate System

y-axis

x-axis

A straight line intersects the pentagon at two points

• You may not know this

Cartesian Coordinate System• So how to deal with…

• Learn more and you will know

y-axis

x-axis

Two straight lines intersecting at one point

y-axis

x-axis

A straight line intersects the pentagon at two points

LINE AND SEGMENTDiversify

Line and Segment• Line: infinitely long

• Segment: Finite “region” within the line

• Line is a more general representation of any line segment within itself

DISTANCEWay to describe how far we are

Distance• Problem: Given two points, how far are they?

• Use ruler to measure…• In computer, no way!• Not precise enough!

Length l P2

(x2, y2)

P1

(x1, y1)

Distance• Problem: Given two points, how far are they?

• If we do not care about the actual distance…• Think about that the world is full of grids…• And you can only walk on their sides

• The famous Manhattan Distance

Length l P2

(x2, y2)

P1

(x1, y1)

2121 yyxxl

Distance• Problem: Given two points, how far are they?

• If we do care about the actual distance…• Manhattan distance gives us a brief idea to

calculate the actual distances• If you have learnt Pythagoras’s Theorem…

• Euclidean Distance Length l

P2 (x2, y2)

P1

(x1, y1)a = | x2 – x1 |

b = | y2 – y1 |

221

221 )()( yyxxl

Distance• Problem: Given a line segment, how long is it?

• Treat the two ends as points• Go back to last slide

Distance• Problem: Given two line segments, which one

is the longest?• Easy

• Euclidean Distance• Apply Pythagoras’s Theorem• Compare the length

• …Really that easy?

Distance• Problem: Given two line segments, which one

is the longest?• Difficulties

• Length of segment A = √4 = 2• Length of segment B = 1.9999999…• In computer, it may turn out that A = B!• Known as precision error

• Cure• Use Manhattan Distance (does it work?)

• LA > LB LA2 > LB

2 when LA and LB are non-negative

CARTESIAN COORDINATEGEOMETRY

x, y and z

Coordinate Geometry• Basically from Cartesian Coordinate System

• How to describe:• A point?

• (x, y) Coordinates for 2D

• A line?• Straight line equation

• A line segment?• Straight line equation, plus range of x and y• Two points form a segment

Coordinate Geometry• For straight line, we need to know its slope

• Given two points on the line• slope = m = change of y value / change of x value• What if x = 0?

• Common representation: point-slope form• (y-y1) = m(x-x1)

• Always possible to represent?

• Another choice: two-point form• y - y1 / x – x1 = y1 – y2 / x1 – x2

• If x1 = x2, then?

VECTOR GEOMETRYArrow’s World

Vector Geometry• What is a vector?

• Geometric object which has both magnitude and direction (think of line segment)

• A notation of means a motion from A to B• Notation: (x, y) means a point P from O (0, 0) to

(x, y) (Note the terminology!)y-axis

x-axis

A vector from origin to a certain point

Vector Geometry• Properties

• Length of vector =

• Addition: (x1, y1) + (x2, y2) = (x3, y3)

• Subtraction: Reverse addition only

22 yx

y-axis

x-axis

(x1, y1) (x2, y2)

(x3, y3)

Vector Geometry• Properties

• Multiplication• Dot Product: (x1, y1) (x‧ 2, y2) = x1*x2 - y1*y2

• Projection of (x1, y1) under (x2, y2) with product of their length

• Wedge Product: (x1, y1)^(x2, y2) = x1*y2 - y1*x2

• Dot Product on itself?• Wedge Product on itself?

Vector Geometry• Straight line equation

• Describe any vectors r that end on a line u, which passes through r0=(a, b) and parallel to r1=(c, d)

• u: r = r0 + tr1 , t is any real number

INTERSECTIONSWhen lines hit

Intersections• Recall the previous problem

• How to find the intersection point, if any?

y-axis

x-axis

Two straight lines intersecting at one point

Intersections• How to find the intersection point, if any?

• Cartesian coordinate geometry• Given K straight line equations, find all distinct

intersection point(s)• Usually a line is defined by giving two arbitrary

points which are on the line• How to represent its equation?• What if a line is a vertical line?

Intersections• How to find the intersection point, if any?

• Cartesian coordinate geometry• Given 2 straight line equations, find all distinct

intersection point(s)• HKOI1998 Junior Q1 – Simultaneous Equations• How about K lines?

Intersections• How to find the intersection point, if any?

• Vector geometry• Given 2 straight line equations, find all distinct

intersection point(s)• Need to find their equations?• Two vectors are formed, let them be AB and CD• We let vector itself be a line

• In general, r0 = OA, r1 = AB

Intersections• How to find the intersection point, if any?

• Vector geometry• Given 2 straight line equations, find all distinct

intersection point(s)• Two vectors are formed, let them be AB and CD

CDAB

CDAC

CDAB

CDOAOCu

CDOAOCCDABu

CDOCCDABuCDOA

vuCDvOCABuOA

)(

)(

,,

Intersections• How to find the intersection point, if any?

• Vector geometry

• Clearly, produces the intersection point• What if is zero?

• Parallel but not the same line• Parallel but they are on the same line

• How about the segment intersection?

CDAB

CDAC

CDAB

CDOAOCu

)(

ABuOACDAB

POLYGONOptional topic

Polygon• If time allows, we would discuss the following

topics• Polygon – Convex or Concave• Is a point inside or outside a polygon?• Given N points, can I find a minimum bounded

polygon that includes those points?• I have two convex polygons, tell me their

intersection area• I have two polygons, tell me if they can combine to

a single polygon through rotation and translation

Practice Problems• HKOJ2071 Little Stage

• HKOJ2074 Storage Centre

• HKOJ2980 Simultaneous Equation

Q&A• Remember: TFT is coming!