Quad Trees - Carnegie Mellon School of Computer Science
[Pages:45]Quad Trees
CMSC 420
Applications of Geometric / Spatial Data Structs.
? Computer graphics, games, movies
? computer vision, CAD, street maps (google maps /
google Earth)
? Human-computer interface design (windowing
systems)
? Virtual reality
? Visualization (graphing complex functions)
Geometric Objects
? Scalars: 1-d poin ? Point: location in d-dimensional space. d-tuple of
scalars. P=(x1,x2,x3...,xd)
- arrays: double p[d]; - structures: struct { double x, y, z; } - good compromise:
struct Point { const int DIM = 3; double coord[DIM];
};
? Vectors: direction and magnitude (length) in that
direction.
Lines, Segments, Rays
? Line: infinite in both directions
- y = mx + b [slope m, intercept b] - ax + by = c - In higher dimensions, any two points define a line.
? Ray: infinite in one direction
? Segment: finite in both directions
? Polygons: cycle of joined line segments
What's a good
- simple if they don't corss
representation for a polygon?
- convex if any line segment connecting two points on its circularly
surface lies entirely within the shape.
linked list
- convex hull of a set of points P: smallest convex set that of points
contains P
Geometric Operations
? P - Q is a vector going from point Q to P
P Q
? Q + v is a point at the head of vector v, if v were
anchored at Q x
Q
? v + u: serially walk along v and then u. v+u is the
direct shortcut.
v
u
v+u
? Great use for C++ operator overloading.
Types of Queries
? Is the object in the set? ? What is the closest object to a given point? ? What objects does a query object intersect with? ? What is the first object hit by the given ray? [Ray
shooting]
? What objects contain P? ? What objects are in a given range? [range queries]
Intersection of Circle & Rectangle
Circle center = C
R.high[1]
Dimension 1
R.low[1]
R.low[0] Dimension 0
R.high[0]
Question: how do you compute the distance from circle center to the rectangle?
Intersection of Circle & Rectangle
R.high[1] R.low[1]
Instead of a lot of special cases, break the distance down by dimension (component)
R.low[0]
R.high[0]
Distance = square root of the sum of the squares of the distances in each dimension
d = dx2 + dy2 + dz2 d2 = distx(C,R)2 + disty(C,R)2 distx(C,R) is 0 unless C is in blue regions
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- quad trees carnegie mellon school of computer science
- introduction to jes and programming
- chapter 13 turtle graphics washington state
- python installation tutorial
- python download script instructions use with csv
- step by step instructions for installing python and
- step 1 lep file download a b you should see that the
- compiling python diablo valley college
- c h a p r 2 file handling in python
- gcse computer science
Related searches
- high school computer science curriculum
- high school computer science projects
- list of computer science topics
- benefits of computer science degree
- history of computer science pdf
- fundamentals of computer science pdf
- benefits of computer science career
- benefits of computer science education
- doctor of computer science salary
- examples of computer science math
- list of computer science journals
- examples of computer science projects