chapter 4

31
Chapter 4 15 March 2006 EventPro Strategies is looking for a part-time programmer (any language) who knows SQL. For more info, contact Ryan Taylor, [email protected]

Upload: kaori

Post on 18-Mar-2016

30 views

Category:

Documents


0 download

DESCRIPTION

Chapter 4. 15 March 2006. EventPro Strategies is looking for a part-time programmer (any language) who knows SQL. For more info, contact Ryan Taylor, [email protected]. Agenda. Chapter 4 – Math for Computer Graphics GLUT solids. Transformations. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 4

Chapter 4

15 March 2006

EventPro Strategies is looking for a part-time programmer (any language) who knows SQL. For more info, contact Ryan Taylor, [email protected]

Page 2: Chapter 4

Agenda

Chapter 4 – Math for Computer Graphics

GLUT solids

Page 3: Chapter 4

Transformations

45-degree counterclockwise rotation about the origin around the z-axis

a translation down the x-axis

Page 4: Chapter 4

Order of transformations

transformed vertex is NMLv

glMatrixMode(GL_MODELVIEW);glLoadIdentity();glMultMatrixf(N); /* apply transformation N */glMultMatrixf(M); /* apply transformation M */glMultMatrixf(L); /* apply transformation L */glBegin(GL_POINTS);glVertex3f(v); /* draw transformed vertex v */glEnd();

Page 5: Chapter 4

Translation

void glTranslate{fd} (TYPE x, TYPE y, TYPE z);

Multiplies the current matrix by a matrix that moves (translates) an object by the given x, y, and z values

Page 6: Chapter 4

Rotation

void glRotate{fd}(TYPE angle, TYPE x, TYPE y, TYPE z);

Multiplies the current matrix by a matrix that rotates an object in a counterclockwise direction about the ray from the origin through the point (x, y, z). The angle parameter specifies the angle of rotation in degrees.

Page 7: Chapter 4

Scale

void glScale{fd} (TYPEx, TYPE y, TYPEz);

Multiplies the current matrix by a matrix that stretches, shrinks, or reflects an object along the axes.

Page 8: Chapter 4

Vectors

N tuple of real numbers (n = 2 for 2D, n = 3 for 3D)

directed line segment example

velocity vector (speed and direction) operations

addition multiplication by a scalar dot product

Page 9: Chapter 4

VectorsVector and Vector Algebra

1 2 32 + 3 = 53 4 7

Page 11: Chapter 4

Matrices

A vector in 3 space is a n x 1 matrix or column vector.

131

Page 12: Chapter 4

Matrices

Multiplication

1 0 0 00 1 0 0 x 0 0 0 00 0 1/k 1

Cos α 0 sin α 0 0 1 0 m-sin α 0 cos α n 0 0 0 1

Page 13: Chapter 4

Matrix multiplication

A is an n x m matrix with entries aij

B is an m x p matrix with entries bij

AB is an n x p matrix with entries cij

m

cij = ais bsj

s=1

Page 14: Chapter 4

Matrix multiplication

m

cij = ais bsj

s=1

1 0 0 00 1 0 0 x 0 0 0 00 0 1/k 1

Cos α 0 sin α 0 0 1 0 m-sin α 0 cos α n 0 0 0 1

a b

c11 c12 c13 c14

c21 c22 c23 c24

c31 c32 c33 c34

c41 c42 c43 c44

Page 15: Chapter 4

2D Transformations

Translation: Pf = T + Pxf = xo + dxyf = yo + dy

Rotation: Pf = R · Pxf = xo * cos - yo *sin yf = xo * sin + yo *cos

Scale: Pf = S · Pxf = sx * xo

yf = sy * yo

Page 16: Chapter 4

Homogeneous Coordinates

Want to treat all transforms in a consistent way so they can be combined easily

Developed in geometry (‘46 in Cambridge) and applied to graphics

Add a third coordinate to a point (x, y, W) (x1, y1, W1) is the same point as (x2, y2,

W2) if one is a multiple of another Homogenize a point by dividing by W

Page 17: Chapter 4

Homogeneous Coordinates

1 0 dx x0 1 dy · y 0 0 1 1

Page 18: Chapter 4

Homogeneous Coordinates

sx 0 0 x 0 sy 0 · y 0 0 1 1

Page 19: Chapter 4

Homogeneous Coordinates

Cos -sin 0 x sin cos 0 · y 0 0 1 1

Page 20: Chapter 4

Combining 2D Transformations Rotate a house about the origin Rotate the house about one of its

cornersTranslate so that a corner of the

house is at the originRotate the house about the originTranslate so that the corner returns to

its original position

Page 21: Chapter 4

GLUT Solids

Sphere Cube Cone Torus Dodecahedron Octahedron Tetrahedron Icosahedron Teapot

Page 22: Chapter 4

glutSolidSphere and glutWireSphere

void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);

radius - The radius of the sphere. slices - The number of subdivisions

around the Z axis (similar to lines of longitude).

stacks - The number of subdivisions along the Z axis (similar to lines of latitude).

Page 23: Chapter 4

glutSolidCube and glutWireCube

void glutSolidCube(GLdouble size);

size – length of sides

Page 24: Chapter 4

glutSolidCone and glutWireCone void glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); base - The radius of the base of the cone. height - The height of the cone. slices - The number of subdivisions around

the Z axis. stacks - The number of subdivisions along

the Z axis.

Page 25: Chapter 4

glutSolidTorus and glutWireTorus void glutSolidTorus(GLdouble innerRadius,GLdouble outerRadius, GLint nsides, GLint rings); innerRadius - Inner radius of the torus. outerRadius - Outer radius of the torus. nsides - Number of sides for each radial

section. rings - Number of radial divisions for the

torus.

Page 26: Chapter 4

glutSolidDodecahedron and glutWireDodecahedron

void glutSolidDodecahedron(void);

Page 27: Chapter 4

glutSolidOctahedron and glutWireOctahedron .

void glutSolidOctahedron(void);

Page 28: Chapter 4

glutSolidTetrahedron and glutWireTetrahedron

void glutSolidTetrahedron(void);

Page 29: Chapter 4

glutSolidIcosahedron and glutWireIcosahedron

void glutSolidIcosahedron(void);

Page 30: Chapter 4

glutSolidTeapot and glutWireTeapot

void glutSolidTeapot(GLdouble size);

size - Relative size of the teapot.

Page 31: Chapter 4

Homework next week.

Study for Test on Chapters 1-4, 02/15/05