- 107 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' Chapter 4' - benita

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### Chapter 4

Geometric Objects and Transformation

Lines

- Consider all points of the form
- P(a)=P0 + ad
- Set of all points that pass through P0 in the direction of the vector d

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(a) = ax0 + (1-a)x1

y(a) = ay0 + (1-a)y1

Rays and Line Segments

If a >= 0, then P(a) is the ray leaving P0 in the direction d

If we use two points to define v, then

P( a) = Q + a (R-Q)=Q+av

=aR + (1-a)Q

For 0<=a<=1 we get all the

points on the line segment

joining R and Q

Three-Dimensional Primitives

3D curves

3D surfaces

Volumetric Objects

Hollow objects

Objects can be specified by vertices

Simple and flat polygons (triangles)

Constructive Solid Geometry (CSG)

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

Confusing Points and Vectors

v

p

v

can place anywhere

fixed

Consider the point and the vector

P = P0 + b1v1+ b2v2+….+bnvn

v=a1v1+ a2v2+….+anvn

They appear to have the similar representations

P=[b1 b2 b3] v=[a1 a2 a3]

which confuse the point with the vector

A vector has no position

A Single Representation

If we define 0•P = 0 and 1•P =P then we can write

v=a1v1+ a2v2+a3v3 = [a1 a2a30][v1 v2 v3 P0] T

P = P0 + b1v1+ b2v2+b3v3= [b1 b2b31][v1 v2 v3 P0] T

Thus we obtain the four-dimensional homogeneous coordinate representation

v = [a1 a2a30] T

P = [b1 b2b31] T

Homogeneous Coordinates

The 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

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

Representing a Mesh

e2

v5

v6

e3

e9

e8

v8

v4

e1

e11

e10

v7

e4

e7

v1

e12

v2

v3

e6

e5

- 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)

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

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

Bilinear Interpolation

Assuming a linear variation, then we can make use of the

same interpolation coefficients in coordinates for the

interpolation of other attributes.

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

General Transformations

A transformation maps points to other points and/or vectors to other vectors

Linear Function (Transformation)

Transformation matrix for homogeneous coordinate system:

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

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

Translation

P´

d

P

- Move (translate, displace) a point to a new location
- Displacement determined by a vector d
- Three degrees of freedom
- P’=P+d

Rotation (2D) – 1/2

x´ = r cos (f + q) = rcosf cosq - rsinf sinq

y´ = r sin (f + q) = rcosf sinq + rsinf cosq

x´ =x cos q –y sin q

y´ = x sin q + y cos q

x = r cos f

y = r sin f

- Consider rotation about the origin by q degrees
- radius stays the same, angle increases by q

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

(Non-)Rigid-Body Transformation

Non-rigid-bodytransformations

Translation and rotation are rigid-body transformation

Scaling

x´=sxx

y´=syx

z´=szx

Uniform and non-uniform

scaling

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

Reflection

sx = -1 sy = 1

original

sx = -1 sy = -1

sx = 1 sy = -1

corresponds to negative scale factors

Transformation in Homogeneous Coordinates

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

Translation

note that this expression is in

four dimensions and expresses

that point = vector + point

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 + dor

x´=x+dx

y´=y+dy

z´=z+dz

Translation Matrix

We can also express translation using a

4 x 4 matrix T in homogeneous coordinates

p´=Tp where

This form is better for implementation because all affine transformations can be expressed this way and multiple transformations can be concatenated together

Rotation about the Z axis

x´=x cos q –y sin q

y´= x sin q + y cos q

z´=z

- 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 homogeneous coordinates
p’=Rz(q)p

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

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(q) = R(-q)
- Holds for any rotation matrix
- Note that since cos(-q) = cos(q) and sin(-q)=-sin(q)
R-1(q) = R T(q)

- Scaling: S-1(sx, sy, sz) = S(1/sx, 1/sy, 1/sz)

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 difficult part is how to form a desired transformation from the specifications in the application

Order of Transformations

Note that matrix on the right is the first applied

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

General Rotation about the Origin

R(q) = Rx() Ry() Rz()

y

, ,are called the Euler angles

v

q

Note that rotations do not commute

We can use rotations in another order but

with different angles

x

z

A rotation by q about an arbitrary axis can be decomposed into the concatenation of rotations about the x, y, and z axes

Rotation about an Arbitrary Axis – 2/2

Rotate the line segment to the plane of y=0, and the line segment is foreshortened to:

Rotate clockwise about the y-axis, so:

Final transformation matrix:

Download Presentation

Connecting to Server..