Introduction to Computational Geometry

advertisement
Introduction to
Computational Geometry
Hackson 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
To begin with
DOT, LINE AND PLANE
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
• ``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 (Computationally)?
•
•
•
•
Lines
Polygons
Planes
Objects (in N dimensional!)
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’’
You must have learnt it in Mathematics
CARTESIAN COORDINATE
SYSTEM
Cartesian Coordinate System
• Terminologies
• Don’t tell me that you don’t know them!
y-axis
A point with +ve x and y
coordinates
x-axis
Cartesian Coordinate System
• Terminologies
• Don’t tell me that you don’t know them!
y-axis
A straight line with negative
slope, passing through origin
x-axis
Cartesian Coordinate System
• Terminologies
• Don’t tell me that you don’t know them!
y-axis
A regular pentagon
x-axis
Cartesian Coordinate System
• You may not know this
y-axis
Two straight lines
intersecting at one point
x-axis
Cartesian Coordinate System
• You may not know this
y-axis
A straight line intersects the
pentagon at two points
x-axis
Cartesian Coordinate System
• So how to deal with…
y-axis
y-axis
A straight line intersects the
pentagon at two points
Two straight lines
intersecting at one point
x-axis
• Learn more and you will know
x-axis
Diversify
LINE AND SEGMENT
Line and Segment
• Line: infinitely long
• Segment: Finite “region” within the line
• Line is a more general representation of any
line segment within itself
Way to describe how far we are
DISTANCE
Distance
• Problem: Given two points, how far are they?
• Use ruler to measure…
• In computer, no way!
• Not precise enough!
Length l
P1
(x1, y1)
P2
(x2, y2)
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
l  x1  x2  y1  y2
• The famous Manhattan Distance
Length l
P1
(x1, y1)
P2
(x2, y2)
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…
l  ( x1  x2 )  ( y1  y2 )
2
• Euclidean Distance
P1
(x1, y1)
2
P2 (x2, y2)
Length l
b = | y2 – y1 |
a = | x2 – x1 |
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 > LB2 when LA and LB are non-negative
x, y and z
CARTESIAN COORDINATE
GEOMETRY
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?
Arrow’s World
VECTOR GEOMETRY
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
A vector from origin
to a certain point
x-axis
Vector Geometry
• Properties
• Length of vector = x 2  y 2
• Addition: (x1, y1) + (x2, y2) = (x3, y3)
• Subtraction: Reverse addition only
y-axis
(x3, y3)
x-axis
(x1, y1)
(x2, y2)
Vector Geometry
• Properties
• Multiplication
• Dot Product: (x1, y1)‧ (x2, 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
When lines hit
INTERSECTIONS
Intersections
• Recall the previous problem
y-axis
Two straight lines
intersecting at one point
x-axis
• How to find the intersection point, if any?
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
OA  u AB  OC  vCD, u , v  
OA  CD  u AB  CD  OC  CD
u AB  CD  (OC  OA)  CD
u
(OC  OA)  CD
AB  CD

AC  CD
AB  CD
Intersections
• How to find the intersection point, if any?
• Vector geometry
(OC  OA)  CD AC  CD
u
AB  CD

AB  CD
• Clearly, OA  u AB produces the intersection point
• What if AB  CD is zero?
• Parallel but not the same line
• Parallel but they are on the same line
• How about the segment intersection?
Optional topic
POLYGON
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!
Download