Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
«ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра ЗІ
З В І Т
До лабораторної роботи №1
з курсу: «Програмування комп’ютерної графіки»
на тему: «Створення проекту і підключення бібліотек OPENGL в С#»
Львів – 2016
Мета роботи: створення програми-заготовки для роботи з бібліотекою 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.Threading.Tasks;
using System.Windows.Forms;
using Tao.FreeGlut;
using Tao.OpenGl;
namespace TaoGl_zi31_yavoriv
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
AnT.InitializeContexts();
}
private void Form1_Load(object sender, EventArgs e)
{
}
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.2f, 0, 0.5f);
Gl.glPushMatrix();
Gl.glTranslated(0, 0, -2);
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 AnT_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();
}
}
}
Результат виконання програми:
При натисканні кнопки «Visualization» отримаємо зображення фігури:
Натиснувши кнопку «Clear»
Після натискання кнопки «Exit», виконання програми завершиться.
Висновок: Під час лабораторної роботи я навчився використовувати елементи бібліотеки OpenGl для побудови зображення.