Download presentation
Presentation is loading. Please wait.
1
REFERENCES: HTTP://EN.WIKIPEDIA.ORG/WIKI/TRIGONOMETRY Trigonometry and Applications
2
Motivation #1 Our character movements so far: Other types of movement:
3
Motivation #2 Making things point towards a point. …we'll see that there are many more applications than these, but they'll be the first we tackle.
4
Section I: Abstract math (trig) "Trigonometry": [Greek, "triangle measuring"] Angles: Degrees & Radians (and conversions) As rotation and orientation Quadrants Supplementary angles
5
Section II: Polar vs. Rectangular (Euclidean) coordinate systems Definitions: Origin Offsets Polar coordinates. Differences and similarities between them. Conversions between coordinate systems Polar => Euclidean Euclidean => Polar "Negative distances" (and complementary angles)
6
Section III: Applications Polar => Rectangular Moving forward at any angle. Drawing a "rotate-able" object Rectangular => Polar Tracking a point
7
Section IV: Vectors and some basic physics Position and velocity as (Euclidean) vectors Incorporating Newton's 2 nd law. Basic integration
8
The "new" type of movement Move n pixels (a distance) in this direction How do we represent a direction? In 2d…an angle.
9
Angles (2D) Two common systems: Degrees Radians By convention, 0 (degrees / radians) is to the right. A measure of rotation: Negative is clockwise (by convention) Positive is counter-clockwise (by convention) Also a description of orientation: How much we've rotate from the 0 (right) position
10
Angles (2D) Degrees 0 90 180 270 45 135 360720 -90 -180
11
Angles (2D) degrees, cont. The number 360 is sort-of arbitrary Evenly divisible by a lot of numbers (2, 4, 8, …) Loosely based on #days/yr Babylonians used a sexagesimal number system (60-based instead of our 10-based system) In the radians system, the number has a physical meaning…
12
Angles (2D) radians What is π? Common answer: 3.14159… But what does it represent??? Definition of π… Circumference = 6.283" Diameter = 2" Circumference = 1.57" Diameter = 0.5"
13
Angles (2D) radians, cont.
14
r d θ
15
0 π Let's say diam = 4 …the circumference would be 4π … halfway around would be 2 π (d) …the radius is 2 …So the radian angle would be 2 π / 2 … π d
16
Conversions
17
Conversions, cont. …Or just use the math functions. math.radians(num) Converts num (assumed to be in degrees) to radians math.degrees(num) Converts num (assumed to be in radians) to degrees Caution: If you see the number 45.0 in your code, is it in radians or degrees? You can't tell – neither can python. Comments are very important!
18
Complementary Angles A pair of complementary angles add up to 180 (degrees) If Θ and Φ are complementary… Θ + Φ = 180 The complement of 34 degrees is 146 degrees.
19
Cartesian coordinates What we've been using so far. Coordinate System Origin Axes (for 2d, 2 of them: conventionally named x and y) With an associated scale (indicated by the gray dotted lines) Coordinates define an offset (e.g. (5,2)) Origin +x +y 5 2
20
Polar coordinates A new way to specify an offset. Coordinate System Origin A "reference" direction (conventionally right) Scale in any direction is indicated by the gray dotted lines. Coordinates define an offset. Now, they are: A direction (an angle, relative to the "reference" direction) A distance to move in that direction Example: (5.3852, 21.8 ◦ ) Origin 5.3852 21.8 ◦ Reference direction
21
Polar / Cartesian coordinates So… o (5,2) in Cartesian coordinates and o (5.3852, 21.8 ◦ ) in Polar coordinates …Represent the same offset! o (Flip back / forth on the previous slides – look at the purple arrow) o The first is useful for "Pacman-style" offsets o The second is useful for "Asteroids-style" offsets Problem: Pygame only uses Cartesian coordinates Solution: We need a way to convert o Initially from Polar=>Cartesian o We'll see later that Cartesian=>Polar has uses too.
22
Polar => Cartesian conversion CartesianCoordinates Angle (degrees)xy 010 9001 1800 2700 15.4?? Initial assumption: distance is 1.0
23
Trig to the rescue! θ A O H
24
Trig functions θ A O H H is the distance we want to move forward A is the amount to add to our x-position O is the amount to add to our y-position (note pygame's y axis) (A,O) is the Cartesian equivalent of (H, θ) in polar coordinate. A=H*cos( θ) O=H*sin( θ)
25
Polar => Cartesian conversion CartesianCoordinates Angle (degrees)xy 010 9001 1800 2700 15.4 Back to our original problem… Initial assumption: distance is 1.0 This is the hypotenuse's length The length of the adjacent side's length (which we don't know)… …but we can calculate A = H * cos(angle) = 1.0 * cos(15.4) = 0.9641 1.0 ?? 0.9641 The opposite side's length this time O = H * sin(angle) = 1.0 * sin(15.4) = 0.2656 0.2656 15.4 ⁰
26
Quadrants and Sign of trig functions Let Θ be any angle in the range –infininty…+infinity. Θ will be in one of 4 quadrants. The following trig functions are positive in each quadrant: Q1: Sin(Θ), Cos(Θ), Tan(Θ) Q2: Sin(Θ) Q3: Tan(Θ) Q4: Cos(Θ) Menmonic: "All Students Take Calculus" Quadrant IQuadrant II Quadrant III Quadrant IV
27
“Negative Distances” Let's say our angle β is 130 degrees. This would put it in quadrant II Sin is positive, Cos and Tan are negative. Problem: We can't draw a right triangle with an (obtuse) angle β We can, however, compute a complementary angle, α And then a right-trangle using that angle. Notice how the adjacent side (if hyptonuse is 1) is cos(50) ≈ 0.64 This is the correct horizontal offset, but it is to the left of the origin. So…it really should be -0.64. Your calculator, pygame.math, etc, already handle this. cos(130) ≈ -0.64 Interpret this as a distance of 0.64, but to the left of the origin. β 0.64 α
28
Example [Moving object, firing projectiles] [Add a "rotate-able" object]
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.