geometrical transformations what do we want to transform? 1. … · 2000. 10. 23. · given a...
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071609/61485264cee6357ef925473c/html5/thumbnails/17.jpg)
Page 17 of 17
Clipping is generally combined with this mapping