Drawing Primitives
description
Transcript of Drawing Primitives
![Page 1: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/1.jpg)
Drawing Primitives
![Page 2: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/2.jpg)
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
![Page 3: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/3.jpg)
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(); }
![Page 4: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/4.jpg)
Lines
![Page 5: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/5.jpg)
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(); }
![Page 6: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/6.jpg)
Polygon
![Page 7: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/7.jpg)
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(); }
![Page 8: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/8.jpg)
Triangles
![Page 9: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/9.jpg)
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(); }
![Page 10: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/10.jpg)
LineStrip
![Page 11: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/11.jpg)
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();
}
![Page 12: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/12.jpg)
Triangle Fan
![Page 13: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/13.jpg)
QuadStripprivate 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(); }
![Page 14: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/14.jpg)
QuadStrip
![Page 15: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/15.jpg)
Constructing Shapes from Lines
![Page 16: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/16.jpg)
Shapes From Lines
![Page 17: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/17.jpg)
Composing Solid Objects Using TRFans
![Page 18: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/18.jpg)
A Cone
![Page 19: Drawing Primitives](https://reader036.fdocuments.net/reader036/viewer/2022081420/56816381550346895dd46583/html5/thumbnails/19.jpg)
Same Cone Using Outline Mode