830 likes | 1.06k Views
Geometrical Transformations. Chapter 5. This chapter introduces the basic 2D and 3D geometrical transformations used in computer graphics.
E N D
Geometrical Transformations Chapter 5
This chapter introduces the basic 2D and 3D geometrical transformations used in computer graphics. • The translation, scaling, and rotation discussed here are essential to many graphics applications and will be referred to extensively in succeeding chapters. Chapter 5 -- Geometric Transformations
1. Mathematical Preliminaries • This section reviews the most important mathematics used in this book • especially vectors and matrices • It is by no means intended as a comprehensive discussion of linear algebra or geometry. • Rather the assumption made is that your familiarity with these topics has faded somewhat Chapter 5 -- Geometric Transformations
1.1 Vectors and Their Properties • It may be that your first introduction to the concept of a vector was in a course in physics or mechanics, • typically with speed and direction • Take for example a ball being hit by a bat • at that moment the ball’s state can be represented by a line segment with an arrow head. (the velocity vector of the ball) Chapter 5 -- Geometric Transformations
The notion of a vector has proved to be of great value in physics and mathematics • We use vectors extensively in computer graphics, • the position of points in a world-coordinate set, • the orientation of surfaces in space, • the behavior of light interacting with solid and transparent objects, • and many other purposes. • We shall see them in many future chapters. Chapter 5 -- Geometric Transformations
Whereas some texts choose to describe vectors exclusively from a geometrical standpoint, we shall emphasize their dual nature and exploit their algebraic definition as well. • The algebraic orientation leads to concise and compact formulation (of linear algebra) which we will favor for the math of computer graphics • The geometric interpretations will serve as an aid in understanding certain concepts. Chapter 5 -- Geometric Transformations
Simple definition: • A vector is an n-tuple of real numbers, • where n is 2 for 2D space, 3 for 3D space • Vectors are amenable to two operations: • addition of vectors and • multiplication of vectors by real numbers, called scalar multiplication. Chapter 5 -- Geometric Transformations
Properties: • Addition is commutative, it is associative, and there is a vector (traditionally called 0) with the property that 0+v = v for any vector v • Addition also has an inverse • for every vector v there is a vector w such that v+w = 0 • (w is written as -v) • Scalar multiplication satisfies the rules of: • (ab)v = a(bv) • 1v = v • (a+b)v = av + bv • a(v+w) = av + aw Chapter 5 -- Geometric Transformations
Addition is defined componentwise, as is scalar multiplication. • Vectors are written vertically, so that a 3D vector is: • We can sum elements: Chapter 5 -- Geometric Transformations
To add the vectors v and w, • we take an arrow from the origin to w, • translate it such that the base is at the point v • and define v+w as the new endpoint of the arrow • This is known as the parallelogram rule: • v+w == w+v Chapter 5 -- Geometric Transformations
Scalar Multiplication by a real number a is defined similarly. • We draw an arrow from the origin to point v, • stretch it by a factor of a (holding the end at the origin fixed) • and then av is defined to be the endpoint of the resulting arrow. • Of course, the same definitions can be made for 3D-space. Chapter 5 -- Geometric Transformations
1.2 The Vector Dot Product • Given two n-dimensional vectors: • We define their inner product or dot product to be: • This is typically notated v .w Chapter 5 -- Geometric Transformations
The distance from the point v = (x,y) to the origin (0,0) is • In general the distance from v = (x1,…,xn) to the origin is: Chapter 5 -- Geometric Transformations
If we let v be the vector: • We can see that this is just • This is our definition of the length of an n-dimensional vector, denoted: Chapter 5 -- Geometric Transformations
1.3 Properties of the Dot Product • The dot product has several nice properties: • First it is symmetric: • Second it is non-degenerate: • iff v = 0 • Third it is bilinear: Chapter 5 -- Geometric Transformations
The dot product can be used to generate vectors whose length is 1 • this is called normalizing a vector • We simply compute: • The resulting vector v’ has length 1, and is called a unit vector. Chapter 5 -- Geometric Transformations
Dot products can also be used to measure angles. • The angle between the vectors v and w is • Note: if v and w are unit vectors, the division is unnecessary. Chapter 5 -- Geometric Transformations
If we have a unit vector v’ and another vector w, and we project w perpendicularly onto v’, and call the result u. Then the length of u should be the length of w multiplied by cosq, where q is the angle between v and w. Chapter 5 -- Geometric Transformations
We shall encounter many applications of the dot product, especially in Chapter 14, where it is used in describing how light interacts with surfaces. Chapter 5 -- Geometric Transformations
1.4 Matrices • A matrix is a rectangular array of numbers, which is frequently used in operations on points and vectors. • You can think of a matrix as representing a rule for transforming its operands by a linear transformation. Chapter 5 -- Geometric Transformations
Its elements are doubly subscripted. • We shall use matrices, and their associated operations throughout much of this book. • Matrices play an important role in geometric transformations (C5), 3D viewing (C6), 3D graphics packages (C7), ... Chapter 5 -- Geometric Transformations
1.5 Matrix Multiplication • Matrices are multiplied according to the following rule: • If A is an n x m matrix with entries aij • and B isa m x p matrix with entries bij • then AB is defined, and is an n x p matrix with entries: Chapter 5 -- Geometric Transformations
The usual properties of multiplication hold • except that matrix multiplication is not commutative: • AB is in general different from BA • Multiplication distributes over addition: • A(B+C) = AB +AC • There is an identity element for multiplication, namely the identity matrix I, • which is the square matrix will all entries 0 except for 1’s on the diagonal Chapter 5 -- Geometric Transformations
1.6 Determinates • The determinant of a square matrix is a single number that is formed from the elements of the matrix, • The definition is recursive. • for m x m matrices: Chapter 5 -- Geometric Transformations
1.7 Matrix Transpose • An n x k matrix can be flipped along its diagonal (upper left to lower right) to make a k x n matrix. • This new matrix is called the transpose of the original matrix. • The transpose of A is written AT • Note:u . v = uTv Chapter 5 -- Geometric Transformations
1.8 Matrix Inverse • Matrix multiplication differs from ordinary multiplication in another way: • A matrix may not have a multiplicative inverse. • In fact inverses are defined only for square matrices, and not even all of them have inverses Chapter 5 -- Geometric Transformations
To be precise, only square matrices whose determinates are nonzero have inverses. • If AB = BA = I, • then B is said to be the inverse of A • If we are given an n x n matrix, the preferred way to find its inverse is by Gaussian elimination, especially for any matrix larger than 3 x 3 Chapter 5 -- Geometric Transformations
2. 2D Transformations • We can translate points in the (x,y) plane to new positions by adding translation amounts to the coordinates of the points. • Our goal is for point P(x,y) to be moved by dx units parallel to the x axis and by dy units parallel to the y axis, to the new point P’(x’,y’) Chapter 5 -- Geometric Transformations
To do this, we write: • x’ = x + dx • y’ = y + dy • If we define the column vectors: • Then we can express the concept as: • P’=P+T Chapter 5 -- Geometric Transformations
We could translate an object by applying the equation to every point of an object. • Because each line in an object is made up of an infinite set of points, however, this process would take an infinitely long time. • Fortunately we can translate all the points on a line by translating only the line’s endpoints and drawing a new line between the endpoints. • This figure translates the “house” by (3, -4) Chapter 5 -- Geometric Transformations
Points can also be scaled (stretched) by sx along the x axis and by sy along the y axis into new points by the multiplication: • x’ = sx*x, y’ = sy*y • In matrix form this is: • or: P’ = S.P Chapter 5 -- Geometric Transformations
In this figure, the house is scaled by 1/2 in x and 1/4 in y • Notice that the scaling is about the origin: • The house is smaller and closer to the origin • If the scale factor had been greater than 1, it would be larger and farther away. • Techniques for scaling about some point (other than the origin) are covered in Section 5.3 Chapter 5 -- Geometric Transformations
Points can be rotated through an angle q about the origin • A rotation is defined mathematically by: • x’ = x*cosq-y*sinq • y’=x*sinq+y*cosq • In matrix form we have: • Or P’ = R.P • (where R is the rotation matrix) Chapter 5 -- Geometric Transformations
This figure shows the rotation of the house by 45 degrees. • As with scaling, the rotation is about the origin • rotation about a point is discussed in Section 5.3 • Positive angles are measured counterclockwise (from x towards y) • For negative angles, you can use the identities: • cos(-q) = cos(q) and sin(-q)=-sin(q) Chapter 5 -- Geometric Transformations
You can easily derive these equations from the following figure: • x= r.cos(f) • y = r.sin(f) • x’=r.cos(q+f) = r.cosf.cosq-r.sinf.sinq • y’=r.sin(q+f) = r.cosf.sinq+r.sinf.cosq • substituting the second set of equations into the first set, you get • x’ = x.cosq-y.sinq • y’=x.sinq+y.cosq Chapter 5 -- Geometric Transformations
3. Homogeneous Coordinates and Matrix Representation of 2D Transformations • The matrix representations for translation, scaling, and rotation are, respectively: • P’ = T+P • P’ = S.P • P’ = R.P • Unfortunately, translation is treated differently from scaling and rotation. • We would like to be able to treat them consistently so that they can be combined easily Chapter 5 -- Geometric Transformations
If points can be expressed in homogeneous coordinates, all three transformations can be treated as multiplications. • In homogeneous coordinates, we add a third coordinate. So (x,y) becomes (x,y,W) • You homogenize the points by dividing each part by W, so you can compare them and end up with (x’,y’,1). • Note: If you pick W==1 you do not have to do any division. Chapter 5 -- Geometric Transformations
Because points are now three-element column vectors, the transformation matrices must be 3x3. • Translation becomes: • This is typically denoted: P’ = T(dx,dy)P Chapter 5 -- Geometric Transformations
Successive Translations work the way we would expect: • If P is translated by T(dx1,dy1) to P’ and then translated by T(dx2,dy2) to P’’ We would expect the net translation to be T(dx1+dx2,dy1+dy2) • And Chapter 5 -- Geometric Transformations
Scaling now becomes: • Just as successive translations are additive, successive scalings are multiplicative Chapter 5 -- Geometric Transformations
Rotation now becomes: • Showing that two rotations are additive has been left to an exercise (5.2) Chapter 5 -- Geometric Transformations
Rigid-Body Transformations: • Involve only translations and rotations • Preserve angles and lengths • General form of the rigid-body transformation matrix looks like this: • An arbitrary sequence of rotation and translation matrices creates a matrix of this form. Chapter 5 -- Geometric Transformations
What can be said about an arbitrary sequence of rotation, translation, and scale matrices? • They are called Affine Transformations. • They preserves parallelism of lines, • but do not preserve angles and lengths Chapter 5 -- Geometric Transformations
Another type of affine transformation is a shear transformation • There are two types of shear-transformations: • Shear in x • Shear in y Chapter 5 -- Geometric Transformations
4. Composition of 2D Transformations • The basic purpose of composing transformations is to gain efficiency by applying a single composed transformation to a point rather than applying a series of transformations, one after another. Chapter 5 -- Geometric Transformations
Consider the rotation of an object about an arbitrary point P1 • Because we know how to rotate about the origin, we convert our original (difficult) problem into three separate (easy) problems. • Translate so that P1 is at the origin. • Rotate • Translate P1 back. Chapter 5 -- Geometric Transformations
The net transformation is: • which, when simplified looks like this: Chapter 5 -- Geometric Transformations
A similar approach is used to scale an object around an arbitrary point P1 • Translate to the origin, Scale, Translate back • In Matrix notation this is: • After you simplify you have: Chapter 5 -- Geometric Transformations
Composition of a series of transformations: • Example: • Translate P1 to origin, scale and rotate, translate to P2 • The matrix you create is: • M=T(x2,y2)R(q)S(sx,sy)T(-x1,-y1) • In general, of course, matrix multiplication is not commutative. • However you can show that in some cases commutativity holds. • So, either preserve the order of operations, or memorize the special cases commutativity holds Chapter 5 -- Geometric Transformations
5. The Window-to-Viewport Transformation • Some graphics packages allow the programmer to specify output primitive coordinates in a floating-point world-coordinate system, using whatever units are meaningful to the application program: • angstroms, microns, meters, ... Chapter 5 -- Geometric Transformations