Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
«ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра ЗІ
З В І Т
До лабораторної роботи №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 для побудови зображення.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!