Chapter 9: Combining Transformation Operators

Post on 19-Jan-2016

49 views 0 download

description

Chapter 9: Combining Transformation Operators. This Chapter: we will learn. How and Costs of combine operators Inverse Operators Pivoted Scale/Rotate Programming Support UWBGL. Translate Then Scale. Given vertex: Translate then Scale: If Then And. Example:. Concatenate:. - PowerPoint PPT Presentation

Transcript of Chapter 9: Combining Transformation Operators

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Chapter 9: Combining Transformation Operators

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

This Chapter: we will learn

How and Costs of combine operators

Inverse Operators

Pivoted Scale/Rotate

Programming Support UWBGL

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Given vertex:

Translate then Scale:

If

Then

And

Translate Then Scale

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Example:

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Compact Representation

Computation Efficiency Cost to concatenate Worthwhile if uses operator many

times

Concatenate:

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

!Warning! Order of operation

Recall …

So, if

Then, in general

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Example: Order of operation

For:

If and

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Reminder …

Transforms Va

Translation (T) followed by Scale (S)

Vertex is to the left of the operators!!

In our case (row vectors): the following is undefined!!

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Inverse Transform: Undo

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

For example:

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

To undo (inverse):

If:

Then

Or:

Inverse of:

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Inverse of:

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Inverse of concatenated operator

Apply the inverse in reverse order!

In general: Inverse is not unique E.g., R(θ), inverse can be

R(-θ) or R(-θ+360), or R(- θ+270) …

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Combining Translation and Scaling

Translate before scale to align vertex with origin “anchor” the vertex

E.g., scale rectangleby S(3,0.5) witha fixed anchor (Vc)

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Pivoted Scaling:

Scaling with respect to Pivot position:

E.g., scale rectanglewith respect topt=(1,5)

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Rotation with Arbitrary Pivot Pivot position:

E.g., rotate rectanglewith respect totop-right corner (pr)pt=(3,8)

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Tut 9.1: Simple Concatenation

Label B + C: Ma = S T Label D: loads Ma to MW All vertex goes through

V MW MV MP Rectangle transform by:

V Ma

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Tut 9.2: Order or concatenation

GUI Check box controls m_bTranslateFirst

Label B: Ma=ST or Ma=TS

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Matrix Stack:

Push-down stack of matrices Graphics API support for concatenation of

transform operators (matrices) Operations supported

Push Pop Concatenation

Translate/scale/rotate Load/Store

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Tut 9.3: Working with Matrix Stack

Label C: Top of Stack <- ST

Label D: Top of Stack <- TS

Label E: MW<- Top of Stack

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Tut 9.4: Pivoted Scale/Rotate

Implements:

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Tut 9.4: … details …

Label C computes:

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Tut 9.5: Transform Primitives

Label C1/C2: push/pop

Label D: set up transform for Drawing rectangle 1

Label F: set up transform for Drawing rectangle 2

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Lib9: Drawing with MatrixStack

DrawHelper: Defines the Stack behavior

D3D_DrawHelper Defines D3D Matrix Stack

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Lib9: D3D_DrawHelper

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Lib9: XformInfo class

Set/Get: Scale/Translate/Rotate Pivot

SetupModelStack(): Calls DrawHelper’s

AccumulateModelTransform()

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Tut 9.6: Using XformInfo

Identical to 9.5 … using XformInfo

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Tut 9.7: XformInfoControl

CXformInfoControls class (MFC Dialog)

Replace onto mainTutorialDlg

With a placeholder

Chapter 9

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer

Using CXformInfoControl CModel must support

Label B: GetSelectedXform() SetSelectedXform()

CXformInfoControl Access model’s selected xform From theApp->GetModel().Get/Set selectedXform()