chapter 4

41
1 Chapter 4 Geometric Objects and Transformation

Upload: benita

Post on 17-Jan-2016

16 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Chapter 4

1

Chapter 4

Geometric Objects and Transformation

Page 2: Chapter 4

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

Page 3: Chapter 4

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

Page 4: Chapter 4

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

Page 5: Chapter 4

5

Dot and Cross: Products

||||

|||sin|

||||cos

||

),,(

),,(),,,(

2

vu

vu

vu

vu

uuu

vuvuvuvuvuvuvu

vuvuvuvu

vvvvuuuuLet

xyyxzxxzyzzy

zzyyxx

zyxzyx

Page 6: Chapter 4

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

Page 7: Chapter 4

7

Constructive Solid Geometry

Page 8: Chapter 4

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

Page 9: Chapter 4

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

Page 10: Chapter 4

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

Page 11: Chapter 4

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

Page 12: Chapter 4

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

Page 13: Chapter 4

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

Page 14: Chapter 4

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

Page 15: Chapter 4

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

Page 16: Chapter 4

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.

Page 17: Chapter 4

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

Page 18: Chapter 4

18

General Transformations A transformation maps points to other

points and/or vectors to other vectors

Page 19: Chapter 4

19

Linear Function (Transformation)

)()()(

, and ,,

QfPfQPf

RQPR n

100034333231

24232221

14131211

A

Transformation matrix for homogeneous coordinate system:

AdAPAPdPP 00 )( ,)(

Page 20: Chapter 4

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

Page 21: Chapter 4

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

Page 22: Chapter 4

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

d

Page 23: Chapter 4

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

Page 24: Chapter 4

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

Page 25: Chapter 4

25

(Non-)Rigid-Body Transformation Translation and rotation are rigid-body

transformation

Non-rigid-bodytransformations

Page 26: Chapter 4

26

ScalingExpand or contract along each axis (fixed point of origin)

x´=sxxy´=syxz´=szx

Uniform and non-uniform scaling

Page 27: Chapter 4

27

Reflectioncorresponds to negative scale factors

originalsx = -1 sy = 1

sx = -1 sy = -1 sx = 1 sy = -1

Page 28: Chapter 4

28

Transformation in Homogeneous Coordinates

With a frame, each affine transformation is represented by a 44 matrix of the form:

100034333231

24232221

14131211

M

Page 29: Chapter 4

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

Page 30: Chapter 4

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

Page 31: Chapter 4

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

Page 32: Chapter 4

32

Rotation Matrix

1000

0100

00 cossin

00sin cos

)(zRR

Page 33: Chapter 4

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

Page 34: Chapter 4

34

Scaling Matrixx´=sxxy´=syxz´=szx

p´=Sp

1000

000

000

000

),,(z

y

x

zyx s

s

s

sssSS

Page 35: Chapter 4

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)

Page 36: Chapter 4

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

Page 37: Chapter 4

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

Page 38: Chapter 4

38

Rotation about a Fixed Point and about the Z axis

f

)()()( fzf pTRpTM

Page 39: Chapter 4

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

Page 40: Chapter 4

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

Page 41: Chapter 4

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: