1 / 14

Geometry

Geometry. Floating point math. Avoid floating point when you can If you are given a fixed number of digits after the decimal, multiply & use integers Be careful when you can’t Create EPSILON, “small enough” distance based on precision Two numbers are equal if |x-y| < EPSILON. Lines.

irma
Télécharger la présentation

Geometry

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Geometry

  2. Floating point math • Avoid floating point when you can • If you are given a fixed number of digits after the decimal, multiply & use integers • Be careful when you can’t • Create EPSILON, “small enough” distance based on precision • Two numbers are equal if |x-y| < EPSILON

  3. Lines • Any 2 points determine a line • Four coordinates in 2d: x1,y1, x2, y2 • (y-y1)/(x-x1) = (y2-y1)/(x2-x1) • Slope-intercept form y= mx + b (except vertical line) M is slope (tangent of line’s angle)

  4. General Form: ax+by+c=0 • Works for all 2d lines, vertical & horizontal • Need canonical form • Set b=1 or b=0 (textbook) • Set a*a+b*b =1 (more typical in mathematics) • If a*a+b*b=1, then a=sin(theta), b=cos(theta)

  5. Angle between lines • Angle of line with horizontal: Atan(m) • Angle between 2 lines (slope-int) atan(m1)-atan(m2) (or 180 - that) Or: atan((m2-m1)/(1+m1m2)) • Angle between 2 lines (ax+by+c) Atan((a1b2-a2b1) / (a1a2+b1b2))

  6. Intersection of Lines • Directly (formula on p. 293) • By search • Given 2 lines in “general position” • The intersection is the point at which y2 switches from being above y1 to below y1 • Binary search x values to find this point. • Special cases: lines with same slope • Same line if they share a point • Parallel otherwise

  7. Perpendicular Lines • Slope m vs. slope -1/m • Good for finding “closest point” Slope = -1/m Closest point on L1 is intersection with perp line through p (right angle, 90 degrees) Point p Slope = m

  8. Voronoi Diagram • Start with a set of points • Compute the perpendicular bisectors of the line segments between the points • These bisectors form the boundaries of regions around each point • A test point in a point’s region is closer to that point than any other point in the set • Models cell towers and wireless base stations.

  9. Triangles • 3 angles add up to 180 degrees • Right triangle has one right angle • Pythagorean Theorem (a*a+b*b=c*c) • Trig: sin = a/c, cos=b/c (a is opposite), tan = sin/cos or a/b c a Theta (sin is a/c) b

  10. General Triangle Laws • Law of sines • a/sin A = b/sin B = c/sin C • Law of cosines • a*a = b*b+c*c - 2bc cosA • (If A = 90 degrees, last term is 0)

  11. Triangle Inequality • If a, b and c are sides of a triangle, a+b > c • If a+b=c, then the 3 vertices are collinear • This is a useful test for whether 3 points are collinear: dist(p1,p2) + dist(p2,p3) = dist(p1,p3) Dist(p1,p2) = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))

  12. Area of Polygon • Given the coordinates of any polygon, the area is computed by the formula • Total=0; • For(int v=0;v<N;v++) • Total += (x[v]-x[v-1])*(y[v]+y[v-1]); • Special case for triangles on page 297

  13. Circles • Circle is locus of all points equidistant (radius) from a single point (center) • Area = pi * r*r • Circumference = 2*pi*r • Pi = 3.1415926 (and many more digits) • Tangent: line touches circle at one point (perpendicular to radius at that point) • Intersections: 0, 1 or 2 of 2 circles

  14. Triangulation • Knowing distance of 3 points from a query point • Construct 3 circles of appropriate radius • These circles will (approximately) intersect in one point • This point is the query point

More Related