drawing basic graphics primitives
Download
Skip this Video
Download Presentation
Drawing Basic Graphics Primitives

Loading in 2 Seconds...

play fullscreen
1 / 18

Drawing Basic Graphics Primitives - PowerPoint PPT Presentation


  • 481 Views
  • Uploaded on

Drawing Basic Graphics Primitives. Lecture 4 Wed, Sep 3, 2003. OpenGL Functions. OpenGL function names always begin with gl, glu, or glut, depending on the library. Names of functions that allow a variable number of arguments are followed by a digit indicating the number.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Drawing Basic Graphics Primitives' - osric


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
drawing basic graphics primitives

Drawing Basic Graphics Primitives

Lecture 4

Wed, Sep 3, 2003

opengl functions
OpenGL Functions
  • OpenGL function names always begin with gl, glu, or glut, depending on the library.
  • Names of functions that allow a variable number of arguments are followed by a digit indicating the number.
  • Names of functions that allow various argument types are followed by a letter indicating the type.
state variables
State Variables
  • OpenGL maintains a large number of state variables.
  • These state variables are global – they are in effect and accessible within all functions.
  • Some states are
    • Colors used in various situations.
    • Shading effects.
    • Lighting effects.
setting the color
Setting the Color
  • One of the states maintained is the current color used for drawing.
  • The color is a combination of red, green, and blue.
  • Use glColor*() to set the current color.
    • glColor3f(1.0, 0.0, 0.0) – bright red.
    • glColor3f(1.0, 1.0, 0.0) – bright yellow.
    • glColor3f(0.5, 0.5, 0.5) – medium gray.
drawing dots
Drawing Dots
  • To color a single pixel, use the glVertex*() function.
    • glVertex2i(int, int).
    • glVertex3f(float, float, float), etc.
  • The pixel is colored with the current color, as set by glColor().
  • The coordinates are in “world” coordinates, not screen coordinates.
primitive objects
Primitive Objects
  • The pixel-drawing function is called glVertex() because the pixel is typically a vertex in a polygon.
  • The programmer must indicate to the GPU whether the point is an isolated point or part of a line or polygon.
  • To do this, use glBegin() and glEnd() to enclose the vertices of the primitive objects.
primitive objects1
Primitive Objects
  • glBegin(type) defines the type of object to be drawn.
  • Some values of typeare
    • GL_POINTS
    • GL_LINES
    • GL_TRIANGLES
    • GL_POLYGON
  • glEnd() marks the end of the object.
creating points
Creating Points
  • The following program segment will draw three pixels.

glBegin(GL_POINTS);

glVertex2i(10, 20);

glVertex2i(50, 20);

glVertex2i(50, 50);

glEnd():

creating triangles
Creating Triangles
  • The following program segment will draw and fill a triangle.

glBegin(GL_TRIANGLES);

glVertex2i(10, 20);

glVertex2i(50, 20);

glVertex2i(50, 50);

glEnd():

creating triangles1
Creating Triangles
  • The following program segment will draw, but not fill, a triangle.

glBegin(GL_LINE_LOOP);

glVertex2i(10, 20);

glVertex2i(50, 20);

glVertex2i(50, 50);

glEnd():

drawing primitives
Drawing Primitives
  • For points, the size of the drawing pen is set by the function glPointSize(size).
  • For lines, the pen width is defined by the function glLineWidth(width).
  • The size and width are measured in pixels.
example drawdots
Example: DrawDots
  • DrawDots.cpp
    • Why does each dot disappear when the next dot is drawn?
    • How could we modify the program so that all the dots remained?
      • Do not clear the buffer, but keep adding to it?
      • Store all the points in a list and draw each one every time?
    • What happens when the window is resized?
making line drawings
Making Line Drawings
  • Drawing lines is similar to drawing points and triangles.
  • Use glBegin(GL_LINES);
  • Every pair of points drawn between glBegin() and glEnd() is rendered as a line.
  • We may list many pairs of points.
example draw an x
Example: Draw an X
  • The following program segment will draw two line segments that form an X.

glBegin(GL_LINES);

glVertex2i(50, 50);

glVertex2i(100, 100);

glVertex2i(50, 100);

glVertex2i(100, 50);

glEnd();

drawing polygons
Drawing Polygons
  • If we use GL_POLYGON in the glBegin() function, then the entire list of points is used to draw a single polygon.
  • What would the last example look like?
  • Why not use GL_POLYGON to draw several polygons in one group, just as with GL_LINES?
example draw an octagon
Example: Draw an Octagon
  • The following program segment will draw a regular octagon.

int cx = 100, cy = 100;

glBegin(GL_POLYGON);

for (int i = 0; i < 8; i++)

{

float dx = cos(i*PI/4);

float dy = sin(i*PI/4);

glVertex2i(x + 100*dx, y + 100*dy);

}

glEnd();

ad