chapter 4
DESCRIPTION
Chapter 4. Geometric Objects and Transformation. Lines. Consider all points of the form P( a )=P 0 + a d Set of all points that pass through P 0 in the direction of the vector d. Parametric Form. This form is known as the parametric form of the line - PowerPoint PPT PresentationTRANSCRIPT
1
Chapter 4
Geometric Objects and Transformation
2
Lines Consider all points of the form
P()=P0 + d
Set of all points that pass through P0 in the direction of the vector d
3
Parametric Form This form is known as the parametric form of the line
More robust and general than other forms Extends to curves and surfaces
Two-dimensional forms Explicit: y = mx +h Implicit: ax + by +c =0 Parametric:
x() = x0 + (1-)x1
y() = y0 + (1-)y1
4
Rays and Line Segments If >= 0, then P() is the ray leaving P0 in the
direction d
If we use two points to define v, then
P( ) = Q + (R-Q)=Q+v
=R + (1-)Q
For 0<=<=1 we get all the
points on the line segment
joining R and Q
5
Dot and Cross: Products
||||
|||sin|
||||cos
||
),,(
),,(),,,(
2
vu
vu
vu
vu
uuu
vuvuvuvuvuvuvu
vuvuvuvu
vvvvuuuuLet
xyyxzxxzyzzy
zzyyxx
zyxzyx
6
Three-Dimensional Primitives Hollow objects Objects can be specified by vertices Simple and flat polygons (triangles) Constructive Solid Geometry (CSG)
3D curves 3D surfaces Volumetric Objects
7
Constructive Solid Geometry
8
Representation Until now we have been able to work with
geometric entities without using any frame of reference, such a coordinate system
Need a frame of reference to relate points and objects to our physical world. For example, where is a point? Can’t answer
without a reference system World coordinates Camera coordinates
9
Confusing Points and VectorsConsider the point and the vector
P = P0 + 1v1+ 2v2 +….+nvn
v=1v1+ 2v2 +….+nvn
They appear to have the similar representations
P=[1 2 3] v=[1 2 3]
which confuse the point with the vector
A vector has no positionv
pv
can place anywherefixed
10
A Single RepresentationIf we define 0•P = 0 and 1•P =P then we can write
v=1v1+ 2v2 +3v3 = [1 2 3 0 ] [v1 v2 v3 P0] T
P = P0 + 1v1+ 2v2 +3v3= [1 2 3 1 ] [v1 v2 v3 P0] T
Thus we obtain the four-dimensional homogeneous coordinate representation
v = [1 2 3 0 ] T
P = [1 2 3 1 ] T
11
Homogeneous CoordinatesThe general form of four dimensional homogeneous coordinates is
p=[x y x w] T
We return to a three dimensional point (for w0) by
xx/w
yy/w
zz/w
If w=0, the representation is that of a vector
Note that homogeneous coordinates replaces points in three dimensions by lines through the origin in four dimensions
12
Homogeneous Coordinates and Computer Graphics
Homogeneous coordinates are key to all computer graphics systems All standard transformations (rotation, translation, scaling)
can be implemented by matrix multiplications with 4 x 4 matrices
Hardware pipeline works with 4 dimensional representations
For orthographic viewing, we can maintain w=0 for vectors and w=1 for points
For perspective we need a perspective division
13
Representing a Mesh Consider a mesh
There are 8 nodes and 12 edges 5 interior polygons 6 interior (shared) edges
Each vertex has a location vi = (xi yi zi)
v1 v2
v7
v6
v8
v5
v4
v3
e1
e8
e3
e2
e11
e6
e7
e10
e5
e4
e9
e12
14
Inward and Outward Facing Polygons
The order {v0, v3, v2, v1} and {v1, v0, v3, v2} are equivalent in that the same polygon will be rendered by OpenGL but the order {{v0, v1, v2, v3} is different
The first two describe outwardly
facing polygons Use the right-hand rule =
counter-clockwise encirclement
of outward-pointing normal OpenGL treats inward and
outward facing polygons differently
15
Geometry versus Topology Generally it is a good idea to look for data
structures that separate the geometry from the topology Geometry: locations of the vertices Topology: organization of the vertices and edges Example: a polygon is an ordered list of vertices with
an edge connecting successive pairs of vertices and the last to the first
Topology holds even if geometry changes
16
Bilinear Interpolation
5445
3223
1001
)1()(
,)1()(
,)1()(
CCC
CCC
CCC
Assuming a linear variation, then we can make use of the same interpolation coefficients in coordinates for the interpolation of other attributes.
17
Scan-line Interpolation A polygon is filled only when it is displayed It is filled scan line by scan line Can be used for other associated attributes
with each vertex
18
General Transformations A transformation maps points to other
points and/or vectors to other vectors
19
Linear Function (Transformation)
)()()(
, and ,,
QfPfQPf
RQPR n
100034333231
24232221
14131211
A
Transformation matrix for homogeneous coordinate system:
AdAPAPdPP 00 )( ,)(
20
Affine Transformations – 1/2 Line preserving Characteristic of many physically important
transformations Rigid body transformations: rotation, translation Scaling, shear
Importance in graphics is that we need only transform endpoints of line segments and let implementation draw line segment between the transformed endpoints
21
Affine Transformations – 2/2
Every linear transformation (if the corresponding matrix is nonsingular) is equivalent to a change in frames
However, an affine transformation has only 12 degrees of freedom because 4 of the elements in the matrix are fixed and are a subset of all possible 4 x 4 linear transformations
22
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
23
Rotation (2D) – 1/2 Consider rotation about the origin by degrees
radius stays the same, angle increases by
x´ =x cos –y sin y´ = x sin + y cos
x = r cos y = r sin
x´ = r cos (rcoscosrsinsiny´ = r sin (rcossinrsincos
24
Rotation (2D) – 2/2 Using the matrix form:
There is a fixed point Could be extended to 3D Positive direction of rotation is counterclockwise 2D rotation is equivalent to 3D rotation about the
z-axis
y
x
y
x
cossin
sincos
25
(Non-)Rigid-Body Transformation Translation and rotation are rigid-body
transformation
Non-rigid-bodytransformations
26
ScalingExpand or contract along each axis (fixed point of origin)
x´=sxxy´=syxz´=szx
Uniform and non-uniform scaling
27
Reflectioncorresponds to negative scale factors
originalsx = -1 sy = 1
sx = -1 sy = -1 sx = 1 sy = -1
28
Transformation in Homogeneous Coordinates
With a frame, each affine transformation is represented by a 44 matrix of the form:
100034333231
24232221
14131211
M
29
TranslationUsing the homogeneous coordinate representation in some fra
me
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+dx
y´=y+dy
z´=z+dznote that this expression is in four dimensions and expressesthat point = vector + point
30
Translation MatrixWe can also express translation using a 4 x 4 matrix T in homogeneous coordinatesp´=Tp where
This form is better for implementation because all affine transformations can be expressed this way and multiple transformations can be concatenated together
1000
d100
d010
d001
),,(z
y
x
zyx dddTT
31
Rotation about the Z axis Rotation about z axis in three dimensions leaves all po
ints with the same z Equivalent to rotation in two dimensions in planes
of constant z
or in homogeneous coordinates
p’=Rz()p
x´=x cos –y sin y´= x sin + y cos z´=z
32
Rotation Matrix
1000
0100
00 cossin
00sin cos
)(zRR
33
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
1000
0 cossin 0
0sin - cos0
0001
(xRR
1000
0 cos0sin -
0010
0sin 0 cos
(yRR
34
Scaling Matrixx´=sxxy´=syxz´=szx
p´=Sp
1000
000
000
000
),,(z
y
x
zyx s
s
s
sssSS
35
Inverses
Although we could compute inverse matrices by general formulas, we can use simple geometric observations Translation: T-1(dx, dy, dz) = T(-dx, -dy, -dz)
Rotation: R -1() = R(-) Holds for any rotation matrix Note that since cos(-) = cos() and sin(-)=-sin()
R -1() = R T()
Scaling: S-1(sx, sy, sz) = S(1/sx, 1/sy, 1/sz)
36
Concatenation We can form arbitrary affine transformation matrice
s 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 difficult part is how to form a desired transformation from the specifications in the application
37
Order of Transformations Note that matrix on the right is the first applie
d Mathematically, the following are equivalent
p´ = ABCp = A(B(Cp)) Note many references use column matrices to
present points. In terms of column matrices
p´T = pTCTBTAT
38
Rotation about a Fixed Point and about the Z axis
f
)()()( fzf pTRpTM
39
General Rotation about the Origin
A rotation by q about an arbitrary axis can be decomposed into the concatenation of rotations about the x, y, and z axes
R() = Rx() Ry() Rz()
are called the Euler angles
Note that rotations do not commute
We can use rotations in another order but
with different angles
x
z
yv
40
Rotation about an Arbitrary Axis – 1/2
1coscoscos ,cos,cos,cos
1 ,||
222
222
zyxzzyyxx
zyx
z
y
x
u
uv
Normalize u:
Final rotation matrix:
)()()()()( xxyyzyyxx RRRRRR
41
Rotation about an Arbitrary Axis – 2/2
Rotate the line segment to the plane of y=0, and the line segment is foreshortened to:
1000
0//0
0//0
0001
)(
so ,22
dd
ddR
d
zy
yzxx
zy
Rotate clockwise about the y-axis, so:
1000
00
0010
00
)(d
d
Rx
x
yy
)()()()()()()( 00 PTRRRRRPTR xxyyzyyxx Final transformation matrix: