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!