# O a polygon is a plane figure specified by a set of three or more coordinate positions, called vertices, that are connected in sequence by straight-Line.

## Presentation on theme: "O a polygon is a plane figure specified by a set of three or more coordinate positions, called vertices, that are connected in sequence by straight-Line."— Presentation transcript:

O a polygon is a plane figure specified by a set of three or more coordinate positions, called vertices, that are connected in sequence by straight-Line segments, called the edges or sides of the polygon.

O Rectangle is a polygon. O OpenGL provides a filled-rectangle drawing primitive, glRect O We need 2 points to define one rectangle. O gl. glRect{sifd}( x1, y1, x2, y2); x1,y1 x2,y2

O gl.glColor3f(0,1f,0); O gl.glRecti(100,50,-100,-50); OUTPUT

O A polygon has two sides -front and back. O If vertices of polygons appear in counterclockwise order called front-facing. O Because OpenGL by default use counterclockwise then also we use counterclockwise to draw polygon. O We bracket each set of vertices between a call to glBegin() and a call to glEnd().

gl.glBegin(GL2.GL_POLYGON); gl.glVertex2i(-50,75); gl.glVertex2i(-100,0); gl.glVertex2i(-50,-75); gl.glVertex2i(50,-75); gl.glVertex2i(100,0); gl.glVertex2i(50,75); gl.glEnd(); OUTPUT

O Each polygon shape contains of two faces, Front and Back. O By default both of them are Fill O The PolygonMode use to control the polygon faces such as (Fill, Line or Point). Fill Mode Line ModePoint Mode

gl.glPolygonMode(GL2.GL_FRONT,GL2.GL_FILL); gl.glPolygonMode(GL2.GL_BACK,GL2.GL_LINE); gl.glPolygonMode(GL2.GL_FRONT_AND_BACK, GL2.GL_POINT); O To change the face of polygon form Front to Back or Back to Front we use gl.glFrontFace(GL2.GL_CW); (ClockWise) gl.glFrontFace(GL2.GL_CCW); (C ounterClockWise)

gl.glPolygonMode(GL2.GL_FRONT,GL2.GL_FILL); gl.glPolygonMode(GL2.GL_BACK,GL2.GL_LINE); gl.glFrontFace(GL2.GL_CW); gl.glBegin(GL2.GL_POLYGON); gl.glVertex2i(0,100); gl.glVertex2i(-75,0); gl.glVertex2i(0,-100); gl.glVertex2i(75,0); gl.glEnd(); OUTPUT

O If you want to highlight the edges of a solid object, you might draw the object with polygon mode set to GL_FILL, and then draw it again, but in a different color and with the polygon mode set to GL_LINE O The problem: Depth values are not the same O This undesirable effect can be eliminated by using polygon offset, which adds an appropriate offset to force coincident z values apart, separating a polygon edge from its highlighting line

O To discard front-or back-facing polygons, use the command glCullFace() and enable culling with glEnable(). O We can discard GL_FRONT,GL_BACK or both faces GL_FRONT_AND_BACK. O Culling enabled using glEnable() with GL_CULL_FACE, and disabled using glDisable()

O gl.glPolygonMode(GL2.GL_FRONT,GL2.GL_FILL); O gl.glPolygonMode(GL2.GL_BACK,GL2.GL_LINE); O gl.glFrontFace(GL2.GL_CCW); O gl.glCullFace(GL2.GL_FRONT); O gl.glEnable(GL2.GL_CULL_FACE); O gl.glBegin(GL2.GL_POLYGON); O gl.glVertex2i(0,100); O gl.glVertex2i(-75,-50); O gl.glVertex2i(75,-50); O gl.glEnd(); O gl.glDisable(GL2.GL_CULL_FACE);

O gl.glEdgeFlag(boolean flag) use to discard the boundary edges of polygon, this method only use with LINE mode of polygon. O used between glBegin() and glEnd(). O boolean flag can be true or false if flag is false then all edges after the glEdgeFlag() command is discarded. O When we want to disable discarding edges we change the flag to true.

O gl.glPolygonMode(GL2.GL_FRONT,GL2.GL_LINE); O gl.glPolygonMode(GL2.GL_BACK,GL2.GL_FILL); O gl.glFrontFace(GL2.GL_CCW); O gl.glBegin(GL2.GL_POLYGON); gl.glEdgeFlag(false); O gl.glVertex2i(100,50); O gl.glEdgeFlag(true); O gl.glVertex2i(-75,50); O gl.glEdgeFlag(false); O gl.glVertex2i(-100,-50); O gl.glEdgeFlag(true); O gl.glVertex2i(75,-50); gl.glEnd();

Download ppt "O a polygon is a plane figure specified by a set of three or more coordinate positions, called vertices, that are connected in sequence by straight-Line."

Similar presentations