00:00:28
Hello and welcome to lecture number 11 in
the course Computer graphics.
00:00:34
We are discussing different stages of the
graphics pipeline.
00:00:39
Before we go into today's topic, let us again
quickly recap the stages and where we are
00:00:45
currently.
00:00:46
So, there are 5 stages, first stage is object
representation, second stage is modelling
00:00:55
transformation, third stage is lighting or
colouring, fourth stage is viewing pipeline
00:01:05
which itself consists of few sub stages, 5
sub stages mainly; viewing transformation,
00:01:15
clipping, hidden surface removal, projects
and transformation and window to viewport
00:01:23
transformation, and the last stage is scan
conversion.
00:01:26
So, what we do in this stage is, the first
stage we define objects, in the second stage,
00:01:31
we put them together to construct a scene
in world coordinate and then in the subsequent
00:01:38
stages, we process those till we perform rendering
on the actual computer screen.
00:01:46
We have already discussed the first stage
object representation, currently we are discussing
00:01:52
the second stage that is modelling transformation.
00:01:56
So, in the last lecture, we got introduced
to the basic idea what we mean by modelling
00:02:04
transformation and we also introduced 4 basic
transformations using which we perform any
00:02:12
type of modelling transformation.
00:02:15
Now, today, we are going to learn about representation.
00:02:20
So, in the previous lecture we talked about
how to represent the transformations, today
00:02:25
we will learn about an alternative way of
representing those transformations.
00:02:31
What we have seen in the previous lecture
how we can represent the transformation.
00:02:37
If you may recollect, there are 4 basic transformations;
translation, rotation, scaling and shearing.
00:02:53
Using these 4 basic transformations, we can
perform any geometric transformation on any
00:03:00
object, either applying any one of these 4
transformations or applying these transformations
00:03:08
in sequence one after another multiple times
and so on.
00:03:17
And we discussed these transformations in
terms of equations.
00:03:24
For translation, we discussed the relationship
between the original point and the transformed
00:03:34
point that is point after translation as shown
in these two equations.
00:03:43
For rotation, similarly, we established the
relationship between the original point and
00:03:49
the transformed point using these two equations.
00:04:00
Same was the case with scaling, again two
equations; one each for the two coordinates
00:04:12
and shear.
00:04:15
In these equations starting with translation,
we used some parameters tx, ty or the amount
00:04:29
of translations along x and y direction.
00:04:33
Similarly, phi is the angle of rotation in
these rotation equations, sx, sy are the scaling
00:04:42
factors along the x and y directions respectively.
00:04:46
And sh x, sh y are the shearing factors along
the x and y directions respectively.
00:04:53
So, as we have shown we can actually use these
equations to represent the transformations.
00:05:06
Now, as we have discussed in introductory
lectures, there are graphics packages, there
00:05:15
are graphics libraries that are developed
to actually make the life of a developer easier
00:05:22
so that a developer need not always implement
the individual components of a graphics pipeline
00:05:30
to develop a product.
00:05:34
In order to build a package or in order to
develop library functions, what we need, we
00:05:41
need modularity, we need standard way of defining
inputs and outputs for each function.
00:05:48
Unfortunately, the equation based representations
of transformations do not support such modularity.
00:05:56
So, when we are trying to represent transformations
using equations, it is difficult to modularize
00:06:07
the overall pipeline in terms of standardized
input and output and standardized functions,
00:06:17
because in subsequent stages of the pipeline,
we will see other transformations and each
00:06:23
of those transformations will have different
equations represented in different forms and
00:06:27
formats.
00:06:28
So, then it will be very difficult to actually
combine these different stages and implement
00:06:37
a package or a library, where the user will
not be bothered about the internal working
00:06:43
of the package.
00:06:44
To maintain this modularity, equation based
representations are not suitable.
00:06:56
We require some alternative representation
and one such alternative representation, which
00:07:02
supports our need for a modularized modular
based system development is matrix representation.
00:07:17
So, we can actually represent transformations
in the form of matrices.
00:07:23
And later on, we will see that other stages
of the pipeline can also be implemented by
00:07:29
representing basic operations in the form
of matrices.
00:07:32
So, there will be some synergy between different
stages and it will be easier to implement
00:07:40
those stages in the form of predefined packages,
functions or libraries.
00:07:47
So, how these matrices look like let us take,
for example, the scaling transformation.
00:07:54
Now, if we want to represent scaling in the
form of matrices, what we will do?
00:08:01
We will create a matrix in this form, a 2
by 2 matrix and the scaling factors will be
00:08:13
positioned along the diagonal as shown here.
00:08:18
Now, how to apply this transformation then?
00:08:26
Suppose we are given a point P(x, y) and we
want to transform it by scaling.
00:08:30
So, what we will do?
00:08:34
We can represent this point as a column vector
shown here and then multiply that transformation
00:08:45
matrix with the column vector.
00:08:49
This is the dot product of the matrices to
get the new points.
00:08:57
So essentially, we need to have matrix multiplication.
00:09:05
And this form of representing the operations
of transformation actually is what makes it
00:09:15
easier to implement in a modular way.
00:09:19
So, we have represented scaling in terms of
2 by 2 matrix.
00:09:28
We can do the same with rotation, we can have
a 2 by 2 matrix for representing rotation
00:09:33
transformation, as well as shearing.
00:09:37
So then, we can have 2 by 2 matrices for the
3 operations; rotation, scaling and shearing.
00:09:47
Unfortunately, 2 by 2 matrices would not serve
our purpose.
00:09:58
Because, no matter how much we try, we will
not be able to implement or represent the
00:10:05
translation transformation using a 2 by 2
matrix unlike the other 3 basic transformations
00:10:17
that is not possible.
00:10:18
So, in order to avoid this problem, in order
to address this issue, we go for another type
00:10:28
of matrix representation, which is called
representation in a homogeneous coordinate
00:10:36
system.
00:10:38
Now, what this homogeneous coordinate system
based matrices representation refers to?
00:10:49
So, essentially it is an abstract representation
technique that means, this coordinate system
00:10:59
actually does not exist in the physical sense,
it is purely mathematical, purely abstract.
00:11:07
So, there may be physically a 2 dimensional
point which we transform to a 3 dimensional
00:11:13
abstract coordinate system called homogeneous
coordinate system.
00:11:17
So, each 2D point represented by these 2 coordinates
x and y can be represented with a 3 element
00:11:29
vector as shown here, each of these elements
correspond to the coordinates in the homogeneous
00:11:38
coordinate system.
00:11:40
So, we are transforming a 2D point into a
3D space in this case, the 3D space is the
00:11:47
abstract homogeneous coordinate space and
each point is represented with a 3 element
00:11:54
vector.
00:11:56
So, what is the relationship between these
2 representations?
00:11:59
So, we have a 2D point represented by its
2 coordinates x and y.
00:12:04
And now, we have transformed it or we are
presenting the same point in a 3 dimensional
00:12:09
space called homogeneous coordinate system
where we are representing the same point with
00:12:16
3 coordinate values xh, yh and h.
00:12:19
So, what are the relationships between these
quantities?
00:12:23
Now, the original coordinate x is equals to
the x coordinate in the homogeneous coordinate
00:12:33
system divided by h, which is the third coordinate
value and original coordinate y is equals
00:12:41
to the y coordinate in the homogeneous coordinate
system divided by again the h, h is called
00:12:52
homogeneous factor and it is important to
note that it can take any nonzero value, it
00:13:02
must be nonzero value.
00:13:06
There are a few more things we should note
here, since, we are considering h to be homogeneous
00:13:11
factor.
00:13:12
So, if h is 0, then we consider that point
to be at infinity in the homogeneous coordinate
00:13:23
system, and there is no concept of origin
since 0 by 0 is not defined so, we usually
00:13:38
do not allow the origin point where everything
is 0.
00:13:45
So, these two things we should remember while
dealing with homogeneous coordinate system,
00:13:55
first thing is if h becomes 0, then we consider
that point to be at infinity and there is
00:14:00
no concept of origin in the homogeneous coordinate
system.
00:14:05
Now, let us try to understand how we can convert
this geometric transformation matrices into
00:14:14
the matrices in the homogeneous coordinate
system.
00:14:20
So, earlier we had this 2 by 2 matrices representing
the 3 basic transformation out of 4; rotation,
00:14:30
scaling and shearing.
00:14:35
As we have already mentioned, so this 2 by
2 matrices will transform to 3 by 3 matrices
00:14:41
in the homogeneous coordinate system.
00:14:44
In fact, in general if there is an N by N
matrix transformation matrices, it is converted
00:14:51
to N plus 1 by N plus 1 matrices.
00:14:59
Now, if we represent a transformation matrix,
a 2D transformation matrix using a 3 by 3
00:15:10
matrix, then we will be able to represent
translation as well so our earlier problem
00:15:14
will be resolved, earlier we were unable to
represent translation using a 2 by 2 matrix,
00:15:19
although you are able to represent the other
3 basic transformations.
00:15:23
Now, with homogeneous representation, we will
be able to avoid that, we will be able to
00:15:29
represent all the 4 basic transformation using
3 by 3 matrices.
00:15:37
Another thing we should keep in mind is that,
when we are talking about geometric transformations,
00:15:44
we always consider h to be 1.
00:15:46
So, h value will always be 1.
00:15:49
However, there are other transformations that
we will encounter in our subsequent lectures,
00:15:55
where h is not equal to 1.
00:15:58
Now, let us see how the basic transformations
are represented using homogeneous coordinate
00:16:06
matrices.
00:16:08
So, translation we can represent using this
matrices, rotation we can represent using
00:16:20
these matrices where phi is the angle of rotation,
scaling can be represented using this matrices
00:16:33
and finally, shear can be represented using
these matrices.
00:16:38
Now, in case of scaling, sx, sy represents
the scaling factors along x and y direction,
00:16:44
in case of searing sh x and sh y represent
the steering factors along x and y direction
00:16:50
respectively.
00:16:53
So, here you can see that we managed to the
present all transformations, all basic transformations
00:17:02
in the form of matrices, although we have
to use 3 by 3 matrices to represent 2 dimensional
00:17:11
transformations.
00:17:13
Since, we are using homogeneous coordinate
system, so, our point representation also
00:17:21
changes.
00:17:22
So, earlier we had this representation for
each point, now we will be representing each
00:17:28
point using a 3 element column vector and
the other operations remain the same with
00:17:37
minor modification.
00:17:38
So, first we apply the matrix multiplication
as before to get the new point that is P dash
00:17:45
is equal to S P. But, after this, what we
need to do is divide whatever we got in p
00:17:55
dash, the x and y values by h to get the original
value, this is the general rule for getting
00:18:06
back the actual points.
00:18:10
But, in case of geometric transformation as
we have already mentioned, h is always 1.
00:18:16
So it really does not matter.
00:18:18
But, other transformations will see in subsequent
lectures where it matters very much.
00:18:27
So far what we have discussed is what are
the basic transformations, and how we can
00:18:32
represent those transformations, and also
how we can use those to transform a point
00:18:40
which is by performing a matrix multiplication.
00:18:44
Now, let us try to understand the process
of composition of Transformation.
00:18:49
When we require composition?
00:18:54
If we have to perform transformations that
involve more than one basic transformation,
00:19:01
then we need to combine them together.
00:19:04
Now, the question is how to combine and in
which sequence?
00:19:10
So, when we are performing multiple geometric
transformations to construct world coordinates
00:19:19
scene, we need to address the issues of how
we perform these multiple transformations
00:19:25
together and what should be the sequence of
transformations to be followed.
00:19:35
Let us try to understand this in terms of
an example.
00:19:39
Here in this figure, look at the top figure
here.
00:19:45
We see one object denoted by the vertices
ABCD with its dimension is given.
00:19:55
Now, the bottom figure shows a world coordinate
scene in which the same object is placed here
00:20:05
which is used to define a chimney let us assume
of the house.
00:20:15
Now, here you can see that the original vertex
A got transformed to A dash, B got transformed
00:20:23
to B dash, C got transformed to C dash and
D got transformed to D dash.
00:20:31
And also, the dimension changed.
00:20:32
So, earlier dimension actually got reduced
along the x direction, although the dimension
00:20:45
along the y direction remained the same.
00:20:48
So, two things happened here as you can note
in this figure, first of all its dimension
00:20:57
changed and secondly its position changed.
00:21:00
So, earlier it was having one vertex as origin,
now it is placed at a different point.
00:21:08
So, two transformations are required; one
is scaling and the other one is translation,
00:21:18
scaling to reduce the size, translation to
reposition it in the world coordinates scene.
00:21:28
This much we can understand from the figure,
but how to actually apply these transformations
00:21:34
that is the question we want to answer so
that we get the new vertices.
00:21:42
What we know?
00:21:43
We know that to get the new vertices we need
to multiply the current vertices with a transformation
00:21:53
matrix.
00:21:54
But, here it is not a basic transformation
matrix, it is a composition of two basic transformation
00:22:01
matrices and we need to perform that how to
do that, how to combine the two matrices?
00:22:13
Let us go step by step.
00:22:16
First step, we need to determine the basic
matrices that means determine the amount of
00:22:24
translation and determine the scaling factors.
00:22:28
Note that the object is halved in length while
the height is the same that means along the
00:22:37
x direction it halved but along y direction
it remained the same.
00:22:43
So, the scaling matrix would be sx should
be half and sy will be 1 as shown in this
00:22:51
transformation matrix for scaling.
00:22:56
Now translation, the second basic transformation
that we require.
00:23:05
Now, here the vertex D was the origin as you
can see here, where it got transferred to?
00:23:14
To D dash.
00:23:15
Now, what is the vertex position of the transformed
point that is (5, 5).
00:23:25
So, origin got repositioned to (5, 5) that
is essentially 5 unit displacement along both
00:23:35
horizontal and vertical directions.
00:23:36
So, then tx equal to 5 and ty equal to 5,
so if we use these values in the transformation
00:23:50
matrix for translation, then we will get this
matrix in this current case.
00:23:58
So, earlier we obtained the scaling matrix
now, we obtained the translation matrix but
00:24:12
our question remains how to combine them?
00:24:15
That is the second step composition of the
matrices or obtain the composite matrix.
00:24:26
What we need to do is to multiply the basic
matrices in sequence and this sequencing is
00:24:34
very important, we follow the right to left
sequence that is a rule we follow to form
00:24:43
the sequence.
00:24:45
Now, what this rule tells us?
00:24:50
First transformation applied on object is
the right most in the sequence, next transformation
00:24:59
is lists on the left of this earlier transformation
and so on, till we reach the last transformation.
00:25:07
So, if we apply the first transformation say
T1 on the object then it should be placed
00:25:14
at the rightmost.
00:25:15
Now, suppose we require another transformation
which is 2, then T 2 will come on the left
00:25:22
side of T1, if there is one more transformation
need to be applied say T3 then it comes left
00:25:32
of T2 and so on till we reach the final transformation
say Tn.
00:25:45
This is the right to left rule; first transformation
applied on the object is on the rightmost
00:25:52
side followed by other transformations in
sequence till the leftmost point where we
00:25:58
place the last transformation applied on the
object.
00:26:03
So, in our case, we can form it in this way,
first transformation to be applied is scaling
00:26:13
followed by translation.
00:26:15
So, right to left rule means first S, and
on its left side will be T so these two will
00:26:22
have multiplication as shown by these 2 matrices
and the result will be this matrix.
00:26:31
So, this is our composite matrix for that
particular transformation.
00:26:41
Once we get the composite matrix after multiplying
the current matrices with the composite matrix,
00:26:51
we will get the new points.
00:26:56
So in our case, this step will lead us to
the points as shown here, A dash can be derived
00:27:08
by multiplying this composite matrix with
the corresponding vertex in homogeneous coordinate
00:27:14
system to get this final vertex in homogeneous
coordinate system and that is true for B dash,
00:27:25
C dash and D dash.
00:27:30
Now, the last stage of course, is to transform
from the homogeneous representation to the
00:27:38
actual representation that we do by dividing
the x and y values by the homogeneous factor
00:27:45
h.
00:27:46
Now h in our case, that is the case where
we are concerned about geometric transformation,
00:27:53
it is 1.
00:27:55
So, our final transform points or vertices
should be obtained in this way, A dash we
00:28:09
will get by dividing the x and y values by
the homogeneous factors, and similarly for
00:28:16
B dash, C dash, and D dash.
00:28:20
So, what we did?
00:28:21
We first identified the basic transformations.
00:28:25
This was followed by forming the sequence
in right to left manner that is we put the
00:28:35
transformation that is to be applied on the
object at first as the rightmost transformation,
00:28:44
then the next transformation to be applied
on the object as the transformation left to
00:28:51
the earlier transformation and so, on.
00:28:54
Then we multiply these basic transformation
matrices to get the composite transformation
00:29:02
matrix.
00:29:04
Then, we multiplied the points with this composite
transformation matrix to get the transform
00:29:15
points in homogeneous coordinate system.
00:29:19
Finally, we divided the x and y values of
this homogeneous coordinate representation
00:29:25
by the homogeneous factor to get back the
original transformed point.
00:29:32
We must remember here that matrix multiplication
is not commutative.
00:29:37
So, the formation of the sequence is very
important.
00:29:41
So earlier we did translation multiplied by
scaling following the right to left rule.
00:29:48
Now, if we have done it in the other way that
is scaling followed by translation, it will
00:29:58
lead to a different matrix whereas this gave
us M, and since matrix multiplication is not
00:30:07
commutative, so we cannot say M equal to M
dash so actual M not equal to M dash.
00:30:14
So, if we do not create the sequence properly,
then our result will be wrong, we may not
00:30:23
get the right transformation matrices.
00:30:27
So, how to decide which sequence to follow.
00:30:33
So, earlier we simply said that first we will
apply scaling and then we will follow translation,
00:30:42
on the basis of what we made that decision.
00:30:47
Let us try to understand the example again
where we made the decision that scaling should
00:30:55
be followed by translation.
00:30:57
So, what was there in the example that indicated
that this would be the sequence?
00:31:10
When we discussed scaling, we mentioned one
thing that is during scaling the position
00:31:16
of the object changes.
00:31:18
Now, if we translate fast and then scale,
then the vertex position might have changed
00:31:28
because scaling may lead to change in position.
00:31:31
However, if we scale fast and then translate,
then anyway we are going to reposition it
00:31:39
at the right place where we want it.
00:31:41
So, there is no possibility of further position
change.
00:31:45
So, clearly in this case, we first apply scaling
and the associated changes that take place
00:31:52
is fine that is followed by translation.
00:31:58
If we do that in that sequence, then we do
not get any problem so that was the logic
00:32:03
behind going for this sequence.
00:32:09
And in general, we follow this logic where
if we require multiple basic transformations
00:32:15
to be applied, so we keep translation at the
end, the last transformation because scaling
00:32:27
and shearing are likely to change the position
so with translation we try to compensate with
00:32:32
that so typically we follow this rule of thumb.
00:32:36
Now, one thing should be noted here, when
we applied scaling, we actually applied it
00:32:45
with respect to the origin.
00:32:46
So, origin is the fixed point in the example.
00:32:52
However, that is not necessarily true.
00:32:55
We can have any fixed point located at any
coordinate in a coordinate system.
00:33:01
So, in such cases, what we do?
00:33:03
We apply the approach that we have seen earlier
in the example, but with slight modification.
00:33:14
So, our approach when we are considering fixed
point which is not the origin is slightly
00:33:25
different, let us see how it is different.
00:33:33
Suppose there is a fixed point F and we want
to scale with respect to this fixed point.
00:33:41
Now, this is not origin, this is situated
at any arbitrary location.
00:33:45
Now, to determine the transformation sequence,
we assume a sequence of steps.
00:33:52
So, if the scaling was with respect to origin
then we do not require anything else we simply
00:34:00
scale, but if it is not with respect to origin,
if it is with respect to some other fixed
00:34:05
point which is not the origin then scaling
itself involves a sequence of steps, just
00:34:12
to perform scaling.
00:34:16
What is that sequence?
00:34:18
So, first we translate the fixed point to
origin that means, we make the translation
00:34:28
amount as such Tx is minus x and Ty is minus
y; that is the first transformation.
00:34:39
Then we perform scaling with respect to origin,
this is important.
00:34:44
So, our scaling matrix is defined with respect
to origin.
00:34:50
So, we first brought or in a conceptual way
brought the fixed point to origin then perform
00:34:59
scaling and then the fixed point is translated
back to its original place, now Tx becomes
00:35:07
x and ty becomes y, reverse translation.
00:35:17
So, how to form the sequence?
00:35:20
Will follow the same right to left rule, first
translation is the rightmost transformation
00:35:27
that is bringing the fixed point to origin,
this is followed by scaling so that is the
00:35:32
second transformation that is followed by
reverse translation that is bringing the point
00:35:43
to the original point again that is the leftmost
transformation.
00:35:48
So, our composite matrix will be a multiplication
of these these matrices; T, S and T, let us
00:36:00
call iTranscriber's
Matrix representation and composition of transformationst
00:36:04
T1 and T2.
00:36:05
We multiply to get the composite matrices
representing scaling with respect to any point
00:36:14
other than origin.
00:36:19
And in the same way we can actually perform
other basic transformations with respect to
00:36:28
any fixed point other than origin.
00:36:30
This is one example, which shows the procedure
that we just mentioned that is now suppose
00:36:44
this original object was defined not with
one vertex at origin, but here where we have
00:36:55
new vertices and the new point with respect
to which the scaling takes place is at T which
00:37:05
is (5, 5), and the same object is placed here
after scaling and translation.
00:37:15
So in this case, translation is not required
because it was already at that point and only
00:37:22
scaling took place.
00:37:24
So, if we apply the previous approach that
we outlined.
00:37:30
So, here we are performing scaling with respect
to these fixed point D, and the transformation
00:37:38
matrix, the composite transformation matrix
can be found by multiplying these 3 matrices.
00:37:45
So, first we translate this fixed point origin
so Tx will be -5, Ty will be -5.
00:37:54
Then we perform scaling with respect to origin
along the x axis that is sx will be half,
00:38:00
sy will be 1.
00:38:03
And then we translate back this point to the
original position that is Tx=5, Ty=5 that
00:38:12
is the composite matrix.
00:38:15
So, once we get this composite matrix for
scaling we apply it to the points to get the
00:38:21
transformed points.
00:38:24
And as I said, we can follow a similar approach
with respect to rotation and shearing by first
00:38:33
transforming the fixed point with respect
to which rotation are shearing had to be performed
00:38:38
to the origin then performing the corresponding
operation and then translating it back to
00:38:45
the original location.
00:38:48
So, for rotation, first we will have one translation.
00:38:56
This is followed by rotation with respect
to origin.
00:38:58
This is followed by this will be followed
by translating back to the original fixed
00:39:07
point location.
00:39:08
For shearing same approach, translation to
origin followed by shearing with respect to
00:39:16
origin followed by translating back to the
original fixed point location.
00:39:21
So, this is the composite matrix form for
performing any of the basic operation with
00:39:30
respect to a fixed point that is not origin.
00:39:35
So, to recap, if we are performing the basic
operation with respect to origin, then we
00:39:46
do not require to do anything else, we simply
apply the basic transformation matrix.
00:39:50
However, if we are performing the operation
with respect to a point which is not the origin,
00:39:55
then we perform a composite transformation
which involves 3 basic transformations; first
00:40:03
one is translation translate the fixed point
to origin, second one is the actual transformation
00:40:10
that is either scaling, rotation or shearing
and the third one is translating back the
00:40:17
fixed point to its original place.
00:40:22
And we perform it in this right to left manner
so this is the right most, then this will
00:40:30
be one on the left of this, the second transformation
and the third one will be on the left of this
00:40:39
second transformation.
00:40:43
So if we put the sequence, first come 1, this
will be followed by 2, this will be followed
00:40:56
by 3.
00:40:58
For a better understanding let us go through
one more example, which will illustrate the
00:41:03
idea further.
00:41:05
Now, let us assume we require more than one
transformations, so we will apply the same
00:41:18
process which we already outlined.
00:41:26
Consider this object, what are the transformations
required to put this object as a chimney in
00:41:35
proportion here, as you can see that we need
to rotate this object here.
00:41:48
So, earlier the surface now becomes here so
it is a rotation in counter-clockwise direction
00:41:55
positive rotation by 90 degree, and the size
also reduces by half along the x direction.
00:42:09
So sx should be half, but all these basic
operations took place with respect to this
00:42:17
fixed point.
00:42:18
So, then how to get the composite matrix?
00:42:22
So, we first translate the fixed point to
origin so that is T, minus 5, minus 5, then
00:42:35
we scale to make it half so then S half 1,
along y axis there is no change so, we will
00:42:46
keep it 1.
00:42:47
So, then we get objects like this, then we
rotate it to get this final one.
00:42:58
So, rotate by 90 degree but these 2 operations
we performed with respect to origin after
00:43:09
translating the fixed point to origin.
00:43:11
So, now we have to translate it back so another
translation 5, 5.
00:43:19
So these matrices together when multiplied
will give us the composite matrix.
00:43:30
So, it will look something like this.
00:43:33
So, if we replace this notations with actual
matrices then we will get these four matrices
00:43:44
and when we multiply we will get the composite
matrix which will look like this.
00:43:48
So, this is our way to get a composite matrix
when we are trying to perform multiple basic
00:44:02
operations with respect to a point which is
not the origin.
00:44:10
And after getting the composite matrix we
will follow the same steps that is we will
00:44:17
multiply the surface points say these points
suppose or any other surface point with the
00:44:26
composite matrix to get the transformed point,
and that brings us to the end of this discussion.
00:44:37
So, before we end it, let us try to recap
what we have learned today.
00:44:43
First, we discussed about an alternative representation
for basic transformations that is the homogeneous
00:44:49
coordinate systems where we represent a 2D
point using a 3D coordinate system.
00:45:05
And as we have seen, it makes life easier
for building modular graphics packages or
00:45:12
libraries.
00:45:14
So, using this homogeneous form, we can represent
all 4 basic transformations using 3 by 3 matrices.
00:45:26
Then what we learned is to form a composite
matrix following the right to left rule so
00:45:33
first matrix that we apply on the objects
should be the right most, next matric that
00:45:39
we apply should be the left to the right most
matrix and so on till the last transformation.
00:45:49
And we multiply all these matrices together
to get the composite matrices.
00:45:53
Once we get the composite matrix, we multiply
it with the points to get the transformed
00:45:58
points in homogeneous coordinate system.
00:46:00
Finally, we divide this x and y values in
the homogeneous system by the homogeneous
00:46:05
factor to get back the original points.
00:46:10
We also learned about how to perform the basic
transformations with respect to any point
00:46:17
that is not origin.
00:46:21
The earlier notations were meant to be performed
with respect to origin so when we are given
00:46:28
a fixed point and we are supposed to perform
the basic transformation with respect to that
00:46:34
fixed point, which is not the origin, then
we follow a composite matrix approach there
00:46:41
we first translate the fixed point to origin,
perform the required transformations basic
00:46:46
transformations with respect to origin and
translate the point back to its original location.
00:46:52
Following the same right to left rule, we
get the composite matrix to represent the
00:46:59
basic transformation with respect to any arbitrary
point.
00:47:06
So far, whatever we have discussed are related
to 2D transformations.
00:47:12
In the next lecture, we will learn about transformations
in 3D.
00:47:20
The topic that I covered today can be found
in this book, chapter 3, section 3.2 and 3.3.
00:47:30
You may go through these chapters and sections
to learn more about these topics.
00:47:35
We will meet again in the next lecture.
00:47:38
Till then thank you and goodbye.