# Chapter 4 - PowerPoint PPT Presentation

1 / 41

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Chapter 4

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

## Chapter 4

Geometric Objects and Transformation

### Lines

• Consider all points of the form

• 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

xx/w

yy/w

zz/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

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 44 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

x´=sxx

y´=syx

z´=szx

p´=Sp

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

f

### 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 – 1/2

Final rotation matrix:

Normalize u:

### 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: