140 likes | 250 Vues
This guide covers fundamental geometry concepts, focusing on lines, angles, triangles, and circles. It explains how to avoid floating-point errors in calculations, the properties of lines including slopes and intersections, as well as important theorems such as the Pythagorean theorem and the laws of sines and cosines. Special sections detail circle properties, polygon areas, and the method of triangulation for locating points. Understanding these concepts is crucial for applications in mathematics, physics, and engineering.
E N D
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 • 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)
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)
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))
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
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
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.
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
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)
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))
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
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
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