chapter 4
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 PresentationTRANSCRIPT
![Page 1: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/1.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/2.jpg)
Agenda
Chapter 4 – Math for Computer Graphics
GLUT solids
![Page 3: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/3.jpg)
Transformations
45-degree counterclockwise rotation about the origin around the z-axis
a translation down the x-axis
![Page 4: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/4.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/5.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/6.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/7.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/8.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/9.jpg)
VectorsVector and Vector Algebra
1 2 32 + 3 = 53 4 7
![Page 10: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/10.jpg)
Matrices
Rectangular array of numbers Addition QuickMath
![Page 11: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/11.jpg)
Matrices
A vector in 3 space is a n x 1 matrix or column vector.
131
![Page 12: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/12.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/13.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/14.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/15.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/16.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/17.jpg)
Homogeneous Coordinates
1 0 dx x0 1 dy · y 0 0 1 1
![Page 18: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/18.jpg)
Homogeneous Coordinates
sx 0 0 x 0 sy 0 · y 0 0 1 1
![Page 19: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/19.jpg)
Homogeneous Coordinates
Cos -sin 0 x sin cos 0 · y 0 0 1 1
![Page 20: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/20.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/21.jpg)
GLUT Solids
Sphere Cube Cone Torus Dodecahedron Octahedron Tetrahedron Icosahedron Teapot
![Page 22: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/22.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/23.jpg)
glutSolidCube and glutWireCube
void glutSolidCube(GLdouble size);
size – length of sides
![Page 24: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/24.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/25.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/26.jpg)
glutSolidDodecahedron and glutWireDodecahedron
void glutSolidDodecahedron(void);
![Page 27: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/27.jpg)
glutSolidOctahedron and glutWireOctahedron .
void glutSolidOctahedron(void);
![Page 28: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/28.jpg)
glutSolidTetrahedron and glutWireTetrahedron
void glutSolidTetrahedron(void);
![Page 29: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/29.jpg)
glutSolidIcosahedron and glutWireIcosahedron
void glutSolidIcosahedron(void);
![Page 30: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/30.jpg)
glutSolidTeapot and glutWireTeapot
void glutSolidTeapot(GLdouble size);
size - Relative size of the teapot.
![Page 31: Chapter 4](https://reader031.vdocument.in/reader031/viewer/2022020322/56814871550346895db57c11/html5/thumbnails/31.jpg)
Homework next week.
Study for Test on Chapters 1-4, 02/15/05