Top Banner
Page 1 of 17 Geometrical Transformations 2D Transformations want to change the position, orientation, and size of objects (for most applications) what do we want to transform? 1. All points - pt. by pt. works always but is very slow. 2. Vertices (endpts.) only - good for lines, not for curves. assume objects consist of straight line segments. Transform endpoints and redraw the segments. (curved lines are approx. by straight segments or splines) So we are just manipulating the endpoints. Figure description Figure description Display Transform Generate primitive Generate primitive Transform Display
17

Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Aug 31, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 1 of 17

Geometrical Transformations2D Transformations

• want to change the position, orientation, andsize of objects (for most applications)

• what do we want to transform?

1. All points - pt. by pt. works always butis very slow.

2. Vertices (endpts.) only - good for lines,not for curves.

• assume objects consist of straight linesegments. Transform endpoints and redrawthe segments. (curved lines are approx. bystraight segments or splines) So we are justmanipulating the endpoints.

Figuredescription

Figuredescription

DisplayTransformGenerateprimitive

GenerateprimitiveTransform Display

Page 2: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 2 of 17

Transformations

Points and Vectors will be written as columns

1. Translation (moving an object)

• move points by vector addition

Page 3: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 3 of 17

Scaling (changing the size)

• shrink or stretch distances by multiplication

kx=ky for uniform scaling kx≠ky differential scaling

Note: scaling is about the origin “house is smaller and closer to the origin”

Page 4: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 4 of 17

Rotation (changing position angle)

• change position (angle) by multiplication andaddition

• positive angles are measure counterclockwise• for negative angles:

⇒ cos(-θ) = cos(θ)⇒ sin(-θ) = -sin(θ)

Page 5: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 5 of 17

How is the rotation equation derived?

Page 6: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 6 of 17

2. Shearing (changing slant of the object)• useful for italics

• change slant by multiplication and addition

Slant in x

Slant in y

Page 7: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 7 of 17

Summary:

Translation P’ = T + PScaling P’ = S ⋅ PRotation P’ = R ⋅ PShearing P’ = SH ⋅ P

Unfortunately, translation is different (addition)and we would like to treat all transformations in aconsistent way to they can be easily combined.

Problem:

Page 8: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 8 of 17

Homogeneous Coordinates• add a third coordinate to a point• instead of (x, y) => (x, y, W)

• (x’, y’, W’) and (x, y, W) are the same point ifone is a multiple if the other

• there are an infinite number of homogeneouscoordinates

• in general [x y W], W ≠ 0, represents a point(x/W, y/W) – Cartesian coordinates

• W=1 is normalized• W=0 are points at infinity

Typically triples of coordinates represent points in3D space (x, y, z) but here we are using them torepresent points in 2D space (x, y, W)

• all triples (tx, ty, tW) where t ≠ 0 form a linein 3D space

• (x, y, 1) for all x & y form a plane in 3D space

Page 9: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 9 of 17

General Transformation Matrix

Page 10: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 10 of 17

Symmetries (reflection about axis)

a,b,c,d rotation, reflection, shearing, and scaling p,q translation s uniform scaling p,q=0 (will be used in 3D)

AA’y

x

A

A’

y

x

A

A’

y

x

Page 11: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 11 of 17

Affine transformations• preserve parallelism but not lengths or

anglesRigid body transformations

• preserves angles and lengths• object (“body”) is not distorted in any way• translation? scale? rotate? shear?• products of rigid body transformations?

Page 12: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 12 of 17

Composition• combine R, S, T, & SH to produce desired

general results

Example: Rotation about an arbitrary point P1

• translate P1 to origin• rotate• translate back

(T2 ⋅ (R ⋅ (T1 ⋅ P)))• matrix multiplication is associative• we can express the three transformations as

one matrix:(T2 ⋅ (R ⋅ T1))⋅ P

Page 13: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 13 of 17

Makes a BIG difference when transforming manypoints

• more efficient• one composed transformation rather than

three matrix operations

Example: Scale, rotate, & position with P1 as thecenter for rotation and scaling

T(x2,y2) ⋅ R(θ) ⋅ S(Sx, Sy) ⋅ T(-x1, -y1)

While matrix multiplication is in general, notcommutative, it can be seen that it holds for thisexample.

Page 14: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 14 of 17

However, other times must be careful of the orderin which the transformations are applied, forexample.

1. T1 reflect about y T2 translate (m,0)

2. T2 then T1, NOT commutative (results differ with order)

NOTE:• In the text and in our examples we are

premultiplying transformation matrices withpoints:

P’ = T2 ⋅ T1 ⋅ P T = … T3 T2 T1

• We could also postmultiply:;P’ = P ⋅ T1

T ⋅ T2 T T = T1 T2 T3 …

* we must transpose matrices to go from oneconvention to the other

Page 15: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 15 of 17

Window to Viewport Transformation

• World-coordinate system: “where the objects reside” (also called world space, object space)

• Screen-coordinate system: “display or output objects” (screen space, device coordinates, image space)

OR

• World-coordinate WINDOW: rectangular region inworld-space.

• Screen-coordinate VIEWPORT: rectangular region inscreen-space.

Page 16: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 16 of 17

Given a window & viewport, what is the transformationmatrix that maps the window from world coordinatesinto the viewport in screen coordinates

Three steps:• Translate to origin (-xmin, -ymin)

• Scale window to size of viewport

• Translate to final position (umin, vmin)

Page 17: Geometrical Transformations what do we want to transform? 1. … · 2000. 10. 23. · Given a window & viewport, what is the transformation matrix that maps the window from world

Page 17 of 17

Clipping is generally combined with this mapping