Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра Захист інформації
З В І Т
До лабораторної роботи №1
з курсу:
„ Програмування комп’ютерної графіки ”
на тему:
„ Створення проекту і підключення бібліотеки Tao OPENGL в С# ”
Львів – 2012
Мета роботи : створення програми-заготовки для роботи з бібліотекою openGL.
Завдання:
Програма, яка буде створена в результаті виконання даної лабораторної роботи, повинна здійснювати наступні дії: створювати порожнє вікно для графічного виводу засобами openGL; встановлювати всі необхідні параметри графічного виводу; реагувати на натиснення клавіші <ESC> для закриття вікна і завершення роботи. Для демонстрації графічного виводу в кінці лабораторної роботи у вікні буде побудовано деяке зображення.
Текст програми:
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 button1_Click(object sender, EventArgs e)
{
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
Gl.glLoadIdentity();
Gl.glColor3f(0, 1.0f, 0);
Gl.glPushMatrix();
Gl.glTranslated(0, 0, -6);
Gl.glRotated(45, 1, 1, 0);
// будуємо ромбододекаедр с допомогою бібліотеки FreeGLUT
Glut.glutWireRhombicDodecahedron();
Gl.glPopMatrix();
Gl.glFlush();
AnT.Invalidate();
}
private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}
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();
Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity();
// настройка параметрів візуалізації
Gl.glEnable(Gl.GL_DEPTH_TEST);
}
private void button2_Click(object sender, EventArgs e)
{
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
Gl.glLoadIdentity();
Gl.glColor3f(1.0f, 1.0f, 1.0f);
Glut.glutWireRhombicDodecahedron();
Gl.glPopMatrix();
Gl.glFlush();
AnT.Invalidate();
}
}
}
Результат виконання програми
Коли натиснемо на кнопку “Візуалізація” отримаємо зображення:
/
Натиснувши на кнопку ”Очистити”
/
Натиснувши на кнопку “Вийти”, виконання програми завершиться.
Висновок:
На цій лабораторній роботі я навчився використовувати елементи бібліотеки OpenGl для побудови зображення.