Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
UBI 516 Advanced Computer Graphics Aydın Öztürk [email protected] http://www.ube.ege.edu.tr/~ozturk Mathematical Foundations Mathematical Foundations Hearn and Baker (A1 – A4) appendix gives good review I’ll give a brief, informal review of some of the mathematical tools we’ll employ – Geometry (2D, 3D) – Trigonometry – Vector spaces Points, vectors, and coordinates – Dot and cross products – Linear transforms and matrices – Complex numbers 2D Geometry Know your high school geometry: – Total angle around a circle is 360° or 2π radians – When two lines cross: Opposite angles are equivalent Angles along line sum to 180° – Similar triangles: All corresponding angles are equivalent Trigonometry Sine: “opposite over hypotenuse” Cosine: “adjacent over hypotenuse” Tangent: “opposite over adjacent” Unit circle definitions: – – – – sin () = y cos () = x tan () = y/x Etc… (x, y) Slope-intercept Line Equation Slope: m ( y - y1 ) / (x - x1 ) (y2 - y1 ) / (x2 - x1 ) Solve for y: y [( y2 - y1 ) / ( x2 - x1 )]x [-( y2 -y1 ) / ( x2 - x1 )]x1 y1 or: y = mx + b y P2 ( x2 , y2 ) P (x, y) P1 ( x1 , y1 ) x Parametric Line Equation Given points P1 ( x1 , y1 ) and P2 ( x2 , y2 ) x x1 u( x2 x1 ) y y1 u( y2 y1 ) y When: – u=0, we get ( x1 , y1 ) – u=1, we get ( x2 , y 2 ) – (0<u<1), we get points on the segment between ( x1 , y1 ) and ( x2 , y2 ) P2 ( x2 , y2 ) P1 ( x1 , y1 ) x Other helpful formulas ( x2 x1 ) 2 ( y2 y1 ) 2 Length = Midpoint P2 between P1 and P3 : x x3 y1 y3 P2 1 , 2 2 Two lines perpendicular if: M 1 1 / M 2 Cosine of the angle between them is 0. Coordinate Systems 2D systems Cartesian system Polar coordinates 3D systems Cartesian system 1) Right-handed 2) Left handed Cylindiric system Spherical system Coordinate Systems(cont.) Grasp z-axis with hand Roll fingers from positive x-axis towards positive y-axis Thumb points in direction of z-axis Y Y Z X X Left-handed coordinate system Z Right-handed coordinate system Points Points support these operations: – Point-point subtraction: Result is a vector pointing from P to Q – Vector-point addition: Q-P=v P+v=Q Q Result is a new point – Note that the addition of two points is not defined v P Vectors We commonly use vectors to represent: – Points in space (i.e., location) – Displacements from point to point – Direction (i.e., orientation) Vector Spaces Two types of elements: – Scalars (real numbers): a, b, g, d, … – Vectors (n-tuples): u, v, w, … Operations: – – – – – Addition Subtraction Dot Product Cross Product Norm Vector Addition/Subtraction – operation u + v, with: Identity 0 v+0=v Inverse v + (-v) = 0 – Vectors are “arrows” rooted at the origin – Addition uses the “parallelogram rule”: y u+v y v v u x u x -v u-v Scalar Multiplication – Scalar multiplication: Distributive rule: a(u + v) = a(u) + a(v) (a + b)u = au + bu – Scalar multiplication “streches” a vector, changing its length (magnitude) but not its direction Dot Product The dot product or, more generally, inner product of two vectors is a scalar: v1 • v2 = x1x2 + y1y2 + z1z2 (in 3D) Useful for many purposes – Computing the length (Euclidean Norm) of a vector: length(v) = ||v|| = sqrt(v • v) – Normalizing a vector, making it unit-length: v = v / ||v|| – Computing the angle between two vectors: u • v = ||u|| ||v|| cos(θ) – Checking two vectors for orthogonality u•v=0 u Dot Product Projecting one vector onto another – If v is a unit vector and we have another vector, w – We can project w perpendicularly onto v w v u – And the result, u, has length w • v u w cos(θ ) vw w ( v w v w Dot Product Is commutative – u•v=v•u Is distributive with respect to addition – u • (v + w) = u • v + u • w Cross Product The cross product or vector product of two vectors is a vector: v1 v2 ( y1z2 z1 y2 , z1x2 x1z2 , x1 y2 y1x2 ) The cross product of two vectors is orthogonal to both Right-hand rule dictates direction of cross product Cross Product Right Hand Rule See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product Cross Product Right Hand Rule See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product Cross Product Right Hand Rule See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product Cross Product Right Hand Rule See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product Cross Product Right Hand Rule See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product Triangle Arithmetic b Consider a triangle, (a, b, c) – a,b,c = (x,y,z) tuples a Surface area = sa = ½ * ||(b –a) X (c-a)|| Unit normal = (1/2sa) * (b-a) X (c-a) c Vector Spaces A linear combination of vectors results in a new vector: v = a1v1 + a2v2 + … + anvn If the only set of scalars such that a1v1 + a2v2 + … + anvn = 0 is a1 = a2 = … = a3 = 0 then we say the vectors are linearly independent The dimension of a space is the greatest number of linearly independent vectors possible in a vector set For a vector space of dimension n, any set of n linearly independent vectors form a basis Vector Spaces: Basis Vectors Given a basis for a vector space: – Each vector in the space is a unique linear combination of the basis vectors – The coordinates of a vector are the scalars from this linear combination – If basis vectors are orthogonal and unit length: Vectors comprise orthonormal basis – Best-known example: Cartesian coordinates – Note that a given vector v will have different coordinates for different bases Matrices Matrix addition Matrix multiplication Matrix tranpose Determinant of a matrix Matrix inverse Complex numbers A complex number z is an ordered pair of real numbers z = (x,y), x = Re(z), y = Im(z) Addition, substraction and scalar multiplication of complex numbers are carried out using the same rules as for two-dimensional vectors. Multiplication is defined as (x1 , y1 )(x2, y2) = (x1 x2 – y1 y2 , x1y2+ x2 y1) Complex numbers(cont.) Real numbers can be represented as x = (x, 0) It follows that (x1 , 0 )(x2 , 0) = (x1 x2 ,0) i = (0, 1) is called the imaginary unit. We note that i2 = (0, 1) (0, 1) = (-1, 0). Complex numbers(cont.) Using the rule for complex addition, we can write any complex number as the sum z = (x,0) + (0,y) = x + iy Which is the usual form used in practical applications. Complex numbers(cont.) The complex conjugate is defined as z̃ = x -iy Modulus or absolute value of a complex number is |z| = z z̃ = √ (x2 +y2) Division of of complex numbers: z1 z1 ~ z2 ~ z2 z1 z 2 Complex numbers(cont.) Polar coordinate representation z rCos riSin r (Cos iSin ) re i Complex numbers(cont.) Complex multiplication z1 z 2 r1r2 e i (1 2 ) r1 i (1 2 ) z1 / z 2 e r2 Conclusion Read Chapters 1 – 3 of OpenGL Programming Guide