Geometric Objects and Transformations - PowerPoint PPT Presentation

About This Presentation
Title:

Geometric Objects and Transformations

Description:

Rectangular array of numbers. A vector in 3 space is a n x 1 matrix or column vector. ... of the house is at the origin. rotate the house about the origin ... – PowerPoint PPT presentation

Number of Views:212
Avg rating:3.0/5.0
Slides: 45
Provided by: UNC93
Learn more at: https://www.cs.unca.edu
Category:

less

Transcript and Presenter's Notes

Title: Geometric Objects and Transformations


1
Geometric Objects and Transformations
  • Chapter 4

2
Points, Scalars and Vectors
  • Points - position in space
  • Scalars - real numbers, complex numbers obey a
    set of rules that are abstractions of arithmetic
    store values such as distance
  • Vectors - directed line segment

3
Vector Arithmetic
  • B 2A
  • C A B
  • Head to tail rule
  • E -A
  • Inverse
  • Zero vector E A

4
Point Arithmetic
  • Cant add p1 p2 p3
  • Cant multiply p1 2 p2
  • What can you do to produce a 2nd point from a
    1st?
  • p1 V p2
  • V p2 - p1

5
Important Vector Concepts
  • Normal Vector
  • A vector at a right angle to a surface.
  • Graphics Usage of Normal Vector
  • Used to figure out similarity of direction which
    is necessary for lighting
  • More precisely, how much light should fall on a
    surface is calculated by the similarity of the
    surface normal and the vector between the light
    source and the surface.
  • Similarity of direction vector dot product

6
(No Transcript)
7
Vector Dot Product
  • For vectors of length 1 (unit vectors), the dot
    product is the length of the projection of one
    vector onto the other.
  • If the dot product
  • 1 the vectors point in the same direction
  • 0 the vectors are at right angles
  • -1 the vectors point in opposite directions

8
Vector Cross Product
  • The cross product of two vectors A and B is
    another vector at right angles to the plane
    created by A and B

9
Defining a Coordinate Space
  • Need to know
  • The origin (or displacement vector)
  • The basis vectors - The direction and distance
    for 1 movement along each axis
  • This definition is relative
  • To plot a point
  • Begin at origin
  • Travel along the x basis vector direction
    scaled by x coord, then along the y basis vector
    scaled by the y coord, then finally along the z
    basis vector scaled by the z coord.

10
Transformations
  • Prior to rendering view, locate and orient
  • eye / camera position
  • 3D geometry
  • Manage the matrices
  • including the matrix stack
  • Combine (composite) transformations

11
Camera Analogy
12
Stages of Vertex Transformation
13
Transformations
  • 45-degree counterclockwise rotation about the
    origin around the z-axis
  • a translation down the x-axis

14
Order of Transformations
glMatrixMode(GL_MODELVIEW) glLoadIdentity() glMu
ltMatrixf(N) / apply transformation N
/ glMultMatrixf(M) / apply transformation M
/ glMultMatrixf(L) / apply transformation L
/ glBegin(GL_POINTS) glVertex3f(v) / draw
transformed vertex v / glEnd()
  • transformed vertex is NMLv

15
Translation
  • void glTranslatefd (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

16
Rotation
  • void glRotatefd(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.

17
Scale
  • void glScalefd (TYPEx, TYPE y, TYPEz)
  • Multiplies the current matrix by a matrix that
    stretches, shrinks, or reflects an object along
    the axes.

18
Vectors
1 2 3 2 3 5 3 4 7
19
Matrices
  • Rectangular array of numbers
  • A vector in 3 space is a n x 1 matrix or
    column vector.
  • Multiplication

1 0 0 0 0 1 0 0 x 0 0 0 0 0
0 1/k 1
Cos a 0 sin a 0 0 1 0 m -sin a
0 cos a n 0 0 0 1
20
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
  • s1

21
2D Transformations
  • Translation Pf T P
  • xf xo dx
  • yf yo dy
  • Rotation Pf R P
  • xf xo cos? - yo sin?
  • yf xo sin? yo cos?
  • Scale Pf S P
  • xf sx xo
  • yf sy yo

22
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

23
Homogeneous Coordinates
  • 1 0 dx x
  • 0 1 dy y
  • 0 0 1 1
  • 1 x 0 y dx 1
  • 0 x 1 y dy 1
  • 0 x 0 y 1 1

24
Homogeneous Coordinates
  • 1 0 dx x
  • 0 1 dy y
  • 0 0 1 1

25
Homogeneous Coordinates
  • sx 0 0 x
  • 0 sy 0 y
  • 0 0 1 1

26
Homogeneous Coordinates
  • Cos? -sin? 0 x
  • sin? cos? 0 y
  • 0 0 1 1

27
Homogeneous Coordinates
  • 1 0 0 x x
  • 0 1 0 y y
  • 0 0 1 1 1
  • Identity Maxtrix x point p point p

28
Combining 2D Transformations
  • Rotate a house about the origin
  • Rotate the house about one of its corners
  • translate so that a corner of the house is at the
    origin
  • rotate the house about the origin
  • translate so that the corner returns to its
    original position

29
OpenGL Buffers
  • Color
  • can be divided into front and back for double
    buffering
  • Alpha
  • Depth
  • Stencil
  • Accumulation

30
Double Buffering
31
Animating Using Double Buffering
  • Request a double buffered color buffer
  • glutInitDisplayMode (GLUT_RGB GLUT_DOUBLE)
  • Clear color buffer
  • glClear(GL_COLOR_BUFFER_BIT)
  • Render Scene
  • Request swap of front and back buffers
  • glutSwapBuffers()
  • Repeat steps 2-4 for animation.

32
Depth Buffering
33
3D Coords --gt Raster coords
  • Transformations
  • Clipping
  • Viewport transformation.

34
GLUT Solids
  • Sphere
  • Cube
  • Cone
  • Torus
  • Dodecahedron
  • Octahedron
  • Tetrahedron
  • Icosahedron
  • Teapot

35
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).

36
glutSolidCube and glutWireCube
  • void glutSolidCube(GLdouble size)
  • size length of sides

37
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.

38
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.

39
glutSolidDodecahedron and glutWireDodecahedron
  • void glutSolidDodecahedron(void)

40
glutSolidOctahedron and glutWireOctahedron .
  • void glutSolidOctahedron(void)

41
glutSolidTetrahedron and glutWireTetrahedron
  • void glutSolidTetrahedron(void)

42
glutSolidIcosahedron and glutWireIcosahedron
  • void glutSolidIcosahedron(void)

43
glutSolidTeapot and glutWireTeapot
  • void glutSolidTeapot(GLdouble size)
  • size - Relative size of the teapot.

44
Homework
  • Project part 2 due 2/19
  • Turn in a program that, at a minimum, draws your
    initial scene.
Write a Comment
User Comments (0)
About PowerShow.com