0% found this document useful (0 votes)
308 views

Homogeneous Coordinates

1. The document discusses transformations in computer graphics such as translation, rotation, and scaling. It explains how these transformations can be represented by 4x4 matrices using homogeneous coordinates. 2. Common transformations like translation, rotation, and scaling are described along with how to compute the corresponding transformation matrices. Composite transformations involving multiple transformations applied in sequence are also covered. 3. The key advantages of representing transformations with 4x4 matrices are that it allows multiple transformations to be concatenated together by matrix multiplication and provides a single framework for implementing all standard transformations in computer graphics systems and pipelines.

Uploaded by

Ajad Ali
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
308 views

Homogeneous Coordinates

1. The document discusses transformations in computer graphics such as translation, rotation, and scaling. It explains how these transformations can be represented by 4x4 matrices using homogeneous coordinates. 2. Common transformations like translation, rotation, and scaling are described along with how to compute the corresponding transformation matrices. Composite transformations involving multiple transformations applied in sequence are also covered. 3. The key advantages of representing transformations with 4x4 matrices are that it allows multiple transformations to be concatenated together by matrix multiplication and provides a single framework for implementing all standard transformations in computer graphics systems and pipelines.

Uploaded by

Ajad Ali
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

1

Transformations
Translation, Rotation, Scale
Composite transformations
2
Homogeneous Coordinates
Homogeneous coordinates are key to all
computer graphics systems
Hardware pipeline all work with 4 dimensional
representations
All standard transformations (rotation,
translation, scaling) can be implemented by
matrix multiplications with 4 x 4 matrices
2
3
A Single Representation
With these rules, we can keep track of the
difference:
v=o
1
v
1
+ o
2
v
2
+o
3
v
3
= [o
1
o
2
o
3
0 ] [v
1
v
2
v
3
P
0
]
T
P = P
0
+ |
1
v
1
+ |
2
v
2
+|
3
v
3
= [|
1
|
2
|
3
1 ] [v
1
v
2
v
3
P
0
]
T
Thus we obtain a four-dimensional
representation for both:
v = [o
1
o
2
o
3
0 ]
T
p = [|
1
|
2
|
3
1 ]
T
4
Affine Transformations
Line preserving
Characteristic of many physically
important transformations
- Rigid body transformations: translation, rotation
- Non-rigid: Scaling, shear
Importance in graphics is that we need
only transform vertices (points) of line
segments and polygons, then system
draws between the transformed points
3
5
Translation
Move (translate, displace) a point to a
new location
Displacement determined by a vector d
- Three degrees of freedom
- P=P+d
P
P
d
6
Moving objects
When we move a point on an object to a new
location, to preserve the object, we must move
all other points on the object in the same way
object translation: every point displaced
by the same vector, d
4
7
Translation Using
Representations
Using the homogeneous coordinate
representation in some frame
p=[ x y z 1]
T
p=[x y z 1]
T
d=[dx dy dz 0]
T
Hence p = p + d or
x=x+d
x
y=y+d
y
z=z+d
z
note that this expression is in
four dimensions and expresses
that point = vector + point
8
Translation Matrix
We can also express translation using a
4 x 4 matrix T in homogeneous coordinates
p=Tp where
T = T(d
x
, d
y
, d
z
) =
This form is better for implementation because all affine
transformations can be expressed this way and
multiple transformations can be concatenated together
(
(
(
(

1 0 0 0
d 1 0 0
d 0 1 0
d 0 0 1
z
y
x
5
9
Rotation (2D)
Consider rotation about the origin by u degrees
- radius stays the same, angle increases by u
What is this rotation
about the z axis?
10
Rotation (2D)
Consider rotation about the origin by u degrees
- radius stays the same, angle increases by u
x=x cos u y sin u
y = x sin u + y cos u
x = r cos |
y = r sin |
x = r cos (| + u)
y = r sin (| + u)
6
11
Rotation about the z axis
Rotation about z axis in three dimensions leaves
all points with the same z
- Equivalent to rotation in two dimensions in
planes of constant z
- or in matrix notation (with p as a column)
p=R
z
(u)p
x=x cos u y sin u
y = x sin u + y cos u
z =z
12
Rotation Matrix
(
(
(
(

u u
u u
1 0 0 0
0 1 0 0
0 0 cos sin
0 0 sin cos
R = R
z
(u) =
Homogeneous Coordinates:
7
13
Rotation about x and y axes
Same argument as for rotation about z axis
- For rotation about x axis, x is unchanged
- For rotation about y axis, y is unchanged
R = R
x
(u) =
R = R
y
(u) =
(
(
(
(

u u
u u
1 0 0 0
0 cos sin 0
0 sin - cos 0
0 0 0 1
(
(
(
(

u u
u u
1 0 0 0
0 cos 0 sin -
0 0 1 0
0 sin 0 cos
14
Scaling
(
(
(
(

1 0 0 0
0 0 0
0 0 0
0 0 0
z
y
x
s
s
s
S = S(s
x
, s
y
, s
z
) =
x=s
x
x
y=s
y
y
z=s
z
z
p=Sp
Expand or contract along each axis (fixed point of origin)
8
15
Reflection
corresponds to negative scale factors
original
s
x
= -1 s
y
= 1
s
x
= -1 s
y
= -1 s
x
= 1 s
y
= -1
16
Basic transforms in
OpenGL
9
17
Inverses
Although we could compute inverse matrices by
general formulas, we can also use simple
geometric observations, for example:
- Translation: T
-1
(d
x
, d
y
, d
z
) = T(-d
x
, -d
y
, -d
z
)
- Rotation: R
-1
(u) = R(-u)
Holds for any rotation matrix
Note that since cos(-u) = cos(u) and sin(-u)= -sin(u)
R
-1
(u) = R
T
(u)
- Scaling: S
-1
(s
x
, s
y
, s
z
) = S(1/s
x
, 1/s
y
, 1/s
z
)
18
Concatenation
We can form arbitrary affine transformation
matrices by multiplying together rotation,
translation, and scaling matrices
Because the same transformation is applied to
many vertices, the cost of forming a matrix
M=ABCD is not significant compared to the cost
of computing Mp for many vertices p
The combination of transformations must be
managed with care, b/c order matters
10
19
Order of Transformations
Note that matrix on the right is the first
applied
Mathematically, the following are
equivalent
p = ABCp = A(B(Cp))
(but does not = CBA p)
Some references use row matrices to
present points. In terms of rows, we get
p
T
= p
T
C
T
B
T
A
T
20
In modeling, we often start with a simple
object centered at the origin, oriented with
the axis, and at a standard size
We apply an composite transformation to
its vertices to
Scale
Orient
Locate
Order of Transformations
11
21
Composite Transformations
Scaling about a fixed point
- Applying the scale transformation also
moves the object being scaled.
P
Q
P'
Q'
22
Composite Transformations
Exception: Scaling about origin -> no movement
Origin is a fixed point for the scale transformation
We use composite transformations to create scale
transformations with different fixed points
P
Q
P'
Q'
12
23
Composite Transformations
Fixed point scale transformation
Move fixed point (px,py,pz) to origin
Scale by desired amount
Move fixed point back to original position
M = T(px, py, pz) S(s
x
, s
y
, s
z
) T(-px, -py, -pz)
24
Composite Transformations
Rotating about a fixed point
- basic rotation alone will rotate about origin
but we want:
13
25
Composite Transformations
Rotating about a fixed point
Move fixed point (px,py,pz) to origin
Rotate by desired amount
Move fixed point back to original position
M = T(px, py, pz) R
x
(u) T(-px, -py, -pz)
26
Composite Transformations
14
27
Rotation about an arbitrary
axis
Rotating about an axis by theta degrees
Rotate about x to bring axis to xz plane
Rotate about y to align axis with z -axis
Rotate theta degrees about z
Unrotate about y, unrotate about x
Can you determine the values of Rx and Ry?
M = Rx
-1
Ry
-1
Rz(u) Ry Rx
28
Composite transformations
A series of transformations on an
object can be applied as a series of
matrix multiplications
: position in the global coordinate
: position in the local coordinate

You might also like