Drawing Primitives
Download
Report
Transcript Drawing Primitives
Drawing Primitives
Foreward
This presentation shows how some primitive shapes
may be drawn using openTK (openGL)
This is not the only approach to draw these
primitives, but may be the most common
DrawLine()
private void DrawLine()
{ // Clear screen to background color.
GL.Clear(ClearBufferMask.ColorBufferBit);
// Set foreground (or drawing) color.
GL.Color3(Color.White);
GL.Begin(BeginMode.Lines);
GL.Vertex3(20.0, 20.0, 0.0);
GL.Vertex3(80.0, 20.0, 0.0);
GL.Vertex3(80.0, 80.0, 0.0);
GL.Vertex3(20.0, 80.0, 0.0);
GL.End();
// Flush created objects to the screen, i.e., force rendering.
glControl1.SwapBuffers();
}
Lines
Polygon
private void DrawPolygon()
{ // Clear screen to background color.
GL.Clear(ClearBufferMask.ColorBufferBit);
// Set foreground (or drawing) color.
GL.Color3(Color.White);
GL.Begin(BeginMode.Polygon);
GL.Vertex3(20.0, 20.0, 0.0);
GL.Vertex3(80.0, 20.0, 0.0);
GL.Vertex3(80.0, 80.0, 0.0);
GL.Vertex3(20.0, 80.0, 0.0);
GL.End();
// force rendering.
glControl1.SwapBuffers();
}
Polygon
Triangles
private void DrawLine()
{ // Clear screen to background color.
GL.Clear(ClearBufferMask.ColorBufferBit);
// Set foreground (or drawing) color.
GL.Color3(Color.White);
GL.Begin(BeginMode.Triangles);
GL.Vertex3(10.0, 90.0, 0.0);
GL.Vertex3(10.0, 10.0, 0.0);
GL.Vertex3(35.0, 75.0, 0.0);
GL.Vertex3(30.0, 20.0, 0.0);
GL.Vertex3(90.0, 90.0, 0.0);
GL.Vertex3(80.0, 40.0, 0.0);
GL.End();
// force rendering.
glControl1.SwapBuffers();
}
Triangles
LineStrip
private void DrawLineStrip()
{ // Clear screen to background color.
GL.Clear(ClearBufferMask.ColorBufferBit);
// Set foreground (or drawing) color.
GL.Color3(Color.White);
GL.Begin(BeginMode.LineStrip);
GL.Vertex3(20.0, 20.0, 0.0);
GL.Vertex3(80.0, 20.0, 0.0);
GL.Vertex3(80.0, 80.0, 0.0);
GL.Vertex3(20.0, 80.0, 0.0);
GL.End();
// force rendering.
glControl1.SwapBuffers();
}
LineStrip
TriangleFan
private void DrawTRFan()
{
// Clear screen to background color.
GL.Clear(ClearBufferMask.ColorBufferBit);
// Set foreground (or drawing) color.
GL.Color3(Color.White);
GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
// Draw a polygon with specified vertices.
GL.Begin(BeginMode.TriangleFan);
GL.Vertex3(10.0, 10.0, 0.0);
GL.Vertex3(15.0, 90.0, 0.0);
GL.Vertex3(55.0, 75.0, 0.0);
GL.Vertex3(80.0, 30.0, 0.0);
GL.Vertex3(90.0, 10.0, 0.0);
GL.End();
// Flush created objects to the screen, i.e., force rendering.
glControl1.SwapBuffers();
}
Triangle Fan
QuadStrip
private void DrawQDStrip()
{
// Clear screen to background color.
GL.Clear(ClearBufferMask.ColorBufferBit);
// Set foreground (or drawing) color.
GL.Color3(Color.White);
GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
// Draw a polygon with specified vertices.
GL.Begin(BeginMode.QuadStrip);
// glBegin(GL_LINE_STRIP);
// glBegin(GL_LINE_LOOP);
GL.Vertex3(10.0, 90.0, 0.0);
GL.Vertex3(10.0, 10.0, 0.0);
GL.Vertex3(30.0, 80.0, 0.0);
GL.Vertex3(40.0, 15.0, 0.0);
GL.Vertex3(60.0, 75.0, 0.0);
GL.Vertex3(60.0, 25.0, 0.0);
GL.Vertex3(90.0, 90.0, 0.0);
GL.Vertex3(80.0, 20.0, 0.0);
GL.End();
// Flush created objects to the screen, i.e., force rendering.
glControl1.SwapBuffers();
}
QuadStrip
Constructing Shapes from Lines
Shapes From Lines
Composing Solid Objects Using TRFans
A Cone
Same Cone Using Outline Mode