МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра Захист інформації
З В І Т
До лабораторної роботи №2
з курсу:
„ Програмування комп’ютерної графіки ”
на тему:
„ Примітиви OPENGL, основні прийоми побудови двовимірних об'єктів ”
Львів – 2012
Мета роботи : знайомство з примітивами OPENGL, призначеними для виведення крапок, ліній і багатокутників. Визначення кольору об'єктів. Різні способи замальовування об'єктів.
Варіант 1
Завдання:
( Варіант 1,рис. 2 )
Використовуючи примітиви бібліотек намалювати фігуру, намальовану на рис. 1.
Для створення даного малюнку використаємо примітив для виведення ламаної лінії.
Текст програми:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Tao.OpenGl;
using Tao.FreeGlut;
using Tao.Platform.Windows;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
AnT.InitializeContexts();
}
private void Form1_Load(object sender, EventArgs e)
{
Glut.glutInit();
Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
Gl.glClearColor(255, 255, 255, 1);
Gl.glViewport(0, 0, AnT.Width, AnT.Height);
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();
if ((float)AnT.Width <= (float)AnT.Height)
{
Glu.gluOrtho2D(0.0, 25.0 * (float)AnT.Height / (float)AnT.Width, 0.0, 25.0);
}
else
{
Glu.gluOrtho2D(0.0, 20.0 * (float)AnT.Width / (float)AnT.Height, 0.0, 20.0);
}
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity();
}
private void button1_Click(object sender, EventArgs e)
{
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
Gl.glLoadIdentity();
Gl.glColor3f(255, 0, 255);
Gl.glBegin(Gl.GL_LINE_STRIP);
Gl.glEnd();
Gl.glFlush();
AnT.Invalidate();
Gl.glBegin(Gl.GL_LINE_STRIP);
Gl.glEnd();
Gl.glEnable(Gl.GL_LINE_SMOOTH);
Gl.glBegin(Gl.GL_LINE_STRIP);
Gl.glVertex2d(6, 12);
Gl.glVertex2d(10, 19);
Gl.glVertex2d(11, 2);
Gl.glVertex2d(11, 14);
Gl.glVertex2d(16, 14);
Gl.glVertex2d(16, 19);
Gl.glVertex2d(24, 5);
Gl.glEnd();
Gl.glDisable(Gl.GL_LINE_SMOOTH);
}
private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button2_Click(object sender, EventArgs e)
{
}
}
}
Результат виконання програми
Натиснувши на кнопку “Візуалізувати” побудується малюнок:
/
Натиснувши на кнопку “Очистити” побудується малюнок зітреться ”
/
Натиснувши на кнопку “Вийти”, виконання програми завершиться.
Висновок:
На цій лабораторній роботі я ознайомився з примітивами OPENGL, призначеними для виведення крапок, ліній і багатокутників.