Presentation is loading. Please wait.

Presentation is loading. Please wait.

Geometry: 2-D Transformations Course web page: Chapter #3.

Similar presentations


Presentation on theme: "Geometry: 2-D Transformations Course web page: Chapter #3."— Presentation transcript:

1 Geometry: 2-D Transformations Course web page: http://www.gomezconsultants.com Chapter #3

2 Why We Need Transformations What can we do so far? –Draw 2-D shapes by exhaustively listing their vertices –Allow user interaction Something missing: –The ability to specify the intrinsic shape of an object independently of its location, scale, or orientation

3 Example: Shape vs. Viewing Issues

4

5

6

7 Transformations for modeling, viewing 1.Make object model in idealized coordinate frame 2.Transform object with appropriate translation, scaling, rotation as needed Also useful for building complex objects from simpler parts from Hill

8 Notes on Notation Vectors, points: x, v (assume column vectors) Matrices: R, T Scalars: x, a Axes, objects: X, Y, O Coordinate systems: W, C Specials –Transpose operator: x T (as opposed to x 0 ) –Identity matrix: Id –Matrices/vectors of zeroes, ones: 0, 1

9 2-D Transformations Types –Translation –Scaling –Rotation –Shear, reflection Mathematical representation OpenGL functions for applying

10 2-D Translation

11

12

13

14

15 2-D Scaling

16

17 1 sxsx Horizontal shift proportional to horizontal position

18 2-D Scaling 1 sysy Vertical shift proportional to vertical position

19 2-D Scaling

20

21 2-D Rotation

22 This is a counterclockwise rotation

23 2-D Rotation µ This is a counterclockwise rotation

24 2-D Rotation

25

26 2-D Rotation (uncentered)

27

28 2-D Shear (horizontal)

29 Horizontal displacement proportional to vertical position

30 2-D Shear (horizontal)

31 2-D Reflection (vertical)

32 Just a special case of scaling—”negative” scaling

33 2-D Reflection (vertical)

34 2-D Transformations: OpenGL 2-D transformation functions * –glTranslate(x, y, 0) –glScale(sx, sy, 0) –glRotate(theta, 0, 0, 1) (angle in degrees; direction is counterclockwise) Notes –Set glMatrixMode(GL_MODELVIEW) first –Transformations should be specified before drawing commands to be affected –Multiple transformations are applied in reverse order * Technically, these are 3-D

35 Example: 2-D Translation in OpenGL Two ways to do this: glRectf(.25,.25,.75,.75);glTranslatef(.5,.5,0); glRectf(-.25,-.25,.25,.25);

36 Example: Order of transformations glTranslatef(.5,.5,0); glRotatef(45,0,0,1); glRectf(-.25,-.25,.25,.25); glRotatef(45,0,0,1); glTranslatef(.5,.5,0); glRectf(-.25,-.25,.25,.25); Remember: Order of application is backwards from drawing commands

37 Limiting “Scope” of Transformations Transformations are ordinarily applied to all subsequent draw commands To limit effects, use push/pop functions: glPushMatrix(); // transform // draw affected by transform glPopMatrix(); // draw unaffected by transform

38 Example: Pushing, popping transformations glPushMatrix(); glTranslatef(.5,.5,0); glRotatef(45,0,0,1); glRectf(-.25,-.25,.25,.25); glPopMatrix(); glPushMatrix(); // draw axis lines glPopMatrix();


Download ppt "Geometry: 2-D Transformations Course web page: Chapter #3."

Similar presentations


Ads by Google