In this segment we are going to revisit rotations

in both 2D and 3D, and talk a little bit about coordinate frames. So far, all of our discussion has been in

terms of operating on points. But one can also change the coordinate system and in fact,

these are equivalent ways of thinking about transformations. For example, if I move towards

you, it can be interpreted in two different ways. Either you think of the coordinate system

as anchored to yourself and I am actually moving towards you, or you think of the coordinate

frame moving backwards and moving away from me. So let’s look at this with an example. Here

we have a point which is located at 2 units along the X axis, 1 unit along the Y axis. I can now translate that point to the left,

so I can move it to the location (1,1) in both axes. So this would be a left translation.

I can also see this as a change in coordinate frame, where the coordinate frame moves to

the right. And so the point item moves 1 unit to the left, or the coordinate frame moves

1 unit to the right. And both of these interpretations are equivalent, and you can use the interpretation

that’s more useful in a specific task. So the reason I brought this up is that in

many cases, you want to define a coordinate frame which is anchored to a specific person,

to an object, to the world, etc. And in many cases, you want a particular physical location

in the world to be transformed between coordinate frames. In general, coordinate frames can

have both translation and rotation. The center can be somewhere in the world and they can

be transformed by orientation; their axes can be different. So here you have the world, and you have an

origin in world space, x and y axes. In the camera coordinates you have some eye location

in u and v, which are the equivalent for x and y. So let’s look at a point p, and we want to

find the coordinates of a point p. So in world space, it’s let’s say 2 units along the x

axis, 0.9 units along the y axis. In the same point, in the camera coordinates,

it’s different. So it’s some location along u. Let’s say .5 along u, and -.6 along v.

And in many cases, one wants to do this. One has a geometric location in the world, even

in homework 1 on your teapot. And one wants to figure out where it lies in camera coordinates,

that has to take into account both the rotational coordinate system of the camera, as well as

where the camera is located, and what the eye coordinates are. Let’s go a little bit further and talk about

new interpretation of 2D rotations. If you remembered my derivation of 2D rotations,

I said a point P moves to P’, and the point P makes some angle alpha with the axis. The

angle of rotation is theta. And so you eventually make an angle of alpha plus theta. If you

write out the coordinates x and y and you simplify the trigonometric identities, eventually

you get a rotation matrix like this which is which is cos theta times x minus sin theta

times y sin theta times x plus cos theta times y. So this is your rotation axis. Of course following the key of rotating points

versus rotating co-ordinate systems, one can think about the point as being fixed, but

the coordinate system rotating in the inverse way. And, indeed, this is what the coordinate system

rotation looks like. This is the new u axis; this is the new v axis. And the coordinate

system is rotated clockwise by theta, whereas the point was rotating counterclockwise by

theta. So what are the coordinates of the new u and

v directions? And we’ll derive these in a moment. If we look at what the x coordinate

here is, this so since the axis are of unit norm, this distance is going to be cosine

of theta. And this length is going to be minus sine

of theta. So, the u coordinates are actually going to be given by cos theta minus sine

theta, that’s u. And v coordinates will be given by, this angle

will again be equal to theta and so you can see along the x direction, the v coordinate

will be given by sine theta, so I can write this as sine theta, and along the y direction

this will be cosine of theta. And in fact, that’s what this is. Sine theta,

cosine theta. So the rows of the rotation matrix can really be regarded as the coordinates

of the new axes. And in fact that’s what it is. So the uv coordinates

of the new axes are equal to cos theta x minus sin theta y, sin theta x cos theta y, of the

old axes. And this leads to the nice geometric interpretation

of 3D rotations which we also talked about earlier. Which is the rows of the matrix are

3 unit vectors of the new coordinate frame. And one can construct a rotation matrix from

any 3 orthonormal vectors. And in fact, the u coordinates are just x_u, y_u, z_u. v coordinates

similarly and w coordinates. Finally I want to briefly revisit the axis-angle

formula that we derived in the previous lecture. And I won’t go over all of the derivation

before, but the essential parts are there is a part which is the identity of cosine

theta, then there’s the a * a transpose part, then there’s the dual matrix and the cross

product part. I mainly put this slide up so that it can

be useful for you for revising when you do homework 1. The identity 1 minus cos theta

times this matrix. It has quadratic components and then sin theta times this cross product

matrix. That will be what the rotation matrix looks like. All of this gives you enough material

that we can actually derive the 4×4 matrix for gluLookAt which is a large component of

what you need to do in homework 1.

awesome, I have finally understood it. Thanks!

your fan is gonna fucken explode