Presentation is loading. Please wait.

Presentation is loading. Please wait.

CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Gareth Bellaby.

Similar presentations

Presentation on theme: "CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Gareth Bellaby."— Presentation transcript:

1 CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Gareth Bellaby Lecture 8 Basic Trigonometry Hipparchos the “father” of trigonometry (image from Wikipedia)

2 References  Rabin, Introduction to Game Development, Chapter 4.1  Van Verth & Bishop, Essential Mathematics for Games, Appendix A and Chapter 1  Eric Lengyel, Mathematics for 3D Game Programming & Computer Graphics  Frank Luna, Introduction to 3D Game Programming with Direct 9.0c: A Shader Approach, Chapter 1

3 Lecture Structure  Introduction  Trigonometric functions:  sine, cosine, tangent  Circles  Useful trigonometric laws

4 Why study Trigonometry?  Why is trigonometry relevant to your course?  Games involve lots of geometrical calculations:  Rotation of models;  Line of sight calculations;  Collision detection;  Lighting.  For example, the intensity of directed light changes according to the angle at which it strikes a surface.  You require a working knowledge of geometry.

5 Mathematical Functions  A mathematical function defines a relationship between one variable and another.  A function takes an input (argument) and relates it to an output (value) according to some rule or formula.  For instance, the sine function maps an angle (as input) onto a number (as output).  The set of possible input values is the functions domain.  The set of possible output values is the functions range.  For any given input, there is exactly one output:  The 3 2 cannot be 9 today and 8 tomorrow!  Mathematical Laws  I'll introduce some laws. I'm not going to prove or derive them. I will ask you to accept them as being true.

6 Greek letters  It is a convention to use Greek letters to represent angles and some other mathematical terms: α alpha β beta γ gamma θ theta λ lambda π pi Δ (capital) Delta

7 Trigonometry  Trigonometry arises out of an observation about right angled triangles...  Take a right angled triangle and consider one of its angles (but NOT the right angle itself).  We'll call this angle α. The opposite side to α is y. The shorter side adjacent to (next to) α is x. The longest side of the triangle (the hypotenuse) is h. o a

8 Trigonometry  There is a relationship between the angle and the lengths of the sides. This relationship is expressed through one of the trigonometric functions, e.g. sine (abbreviated to sin). sin( α ) = o / h o a

9 Values of sine degreessin (degrees) degreessin (degrees)

10 Trigonometry Function Name SymbolDefinition sinesinsin(α) = o / h cosinecoscos(α) = a / h tangenttantan(α) = o / a = sin(α) / cos(α) You need to be aware of three trigonometric functions: sine, cosine and tangent. o a

11 Radians  You will often come across angles measured in radians (rad), instead of degrees (deg)...  A radian is the angle formed by measuring one radius length along the circumference of a circle.  There are 2  radians in a complete circle ( = 360 ° )  deg = rad * 180 ° /   rad = deg *  / 180 °

12 Trigonometry

13 Trigonometric Functions  Sine, cosine and tangent are mathematical functions.  There are other trigonometric functions, but they are rarely used in computer programming.  Angles can be greater than 2  or less than -2 . Simply continue the rotation around the circle.  You can draw a graph of the functions. The x-axis is the angle and the y-axis is (for example) sin(x). If you graph out the sine function then you create a sine wave.

14 Sine Wave and Cosine Wave Image taken from Wikipedia

15 Tangent Wave Image taken from Wikipedia

16 C++  C++ has functions for sine, cosine and tangent within its libraries.  Use the maths or complex libraries:  The standard C++ functions use radians, not degrees. #include using namespace std; float rad; float result; result = sin(rad); result = cos(rad); result = tan(rad);

17 PI  Written using the Greek letter .  Otherwise use the English transliteration "Pi".   is a mathematical constant.  (approximately).   is the ratio of the circumference of a circle to its diameter.  This value holds true for any circle, no matter what its size. It is therefore a constant.

18 Circles  The constant  is derived from circles so useful to look at these.  Circles are a basic shape.  Circumference is the length around the circle.  Diameter is the width of a circle at its largest extent, i.e. the diameter must go through the centre of the circle.  Radius is a line from the centre of the circle to the edge (in any direction).

19 Circles  A tangent is a line drawn perpendicular to (at right angles to) the end point of a radius.  You may know these from drawing splines (curves) in 3ds Max.  You'll see them when you generate splines in graphics and AI.  A chord is line connecting two points on a circle.

20 Circles  A segment is that part of a circle made by chord, i.e. a line connecting two points on a circle.  A sector is part of a circle in which the two edges are radii. sector

21 Circle  Using Cartesian coordinates.  Centre of the circle is at (a, b).  The length of the radius is r.  The length of the diameter is d.

22 Points on a Circle  Imagine a line from the centre of the circle to (x,y)   is the angle between this line and the x-axis.

23 Identities

24 Trigonometric Relationships  This relationship is for right-angled triangles only: Where

25 Trigonometric Relationships  These relationships are for right-angled triangles only:

26 Properties of triangles  This property holds for all triangles and not just right- angled ones.  The angles in a triangle can be related to the sides of a triangle.

27 Properties of triangles  These hold for all triangles

28 Inverses  Another bit of terminology and convention you need to be familiar with.  An inverse function is a function which is in the opposite direction. An inverse trigonometric function reverses the original trigonometric function, so that  If x = sin(y)theny = arcsin(x)  The inverse trigonometric functions are all prefixed with the term "arc": arcsine, arccosine and arctangent.  In C++: asin()acos()atan()

29 Inverses  The notation sin -1, cos -1 and tan -1 is common.  We know that trigonometric functions can produce the same result with different input values, e.g. sin(75 o ) and sin(105 o ) are both  Therefore an inverse trigonometric function typically has a restricted range so only one value can be generated.

30 Inverses FunctionDomainRange

Download ppt "CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Gareth Bellaby."

Similar presentations

Ads by Google