Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування комп’ютерної графіки

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет «Львівська Політехніка» Інститут комп’ютерних технологій автоматики та метрології Кафедра БІТ  Звіт до лабораторної роботи № 1 з дисципліни : “Програмування комп’ютерної графіки ” Львів 2012 Мета: Створення програми-заготовки для роботи з бібліотекою openGL. КОРОТКІ ТЕОРЕТИЧНІ ДАНІ Використання бібліотеки OPENGL вимагає навиків програмування на C++, С# або Delphi а також знання основ об`єктного програмування на рівні операційної системи Windows. Для виконання роботи необхідно мати уявлення про основні принципи формування зображення на екрані, про сучасні стандарти і інтерфейси програмування комп'ютерної графіки ([7] – лекція 17), знати особливості представлення кольору в колірній моделі RGB ([7] – лекція 4). Основні поняття, використовувані в даній лабораторній роботі: контекст пристрою, контекст відтворення, формат піксела. Контекст графічного пристрою (Device Context) указує площину відображення, на яку здійснюється графічний вивід: вікно програми на екрані дисплея, сторінка принтера або інше місце, куди може бути направлений графічний вивід. Якщо програма викликає різні графічні функції, такі як малювання крапок, ліній, фігур і ін., необхідно указувати ідентифікатор контексту (hdc – handle of device context) і координати. Сенс використання контексту пристрою полягає в тому, що вивід на різні пристрої здійснюється одними і тими ж функціями, змінюється лише значення hDC. «Контекст пристрою є структурою, яка визначає комплект графічних об'єктів і пов'язаних з ними атрибутів і графічні режими, що впливають на вивід». При складанні програми необхідно набути цього числового значення перед малюванням, а після малювання – звільнити контекст. У OPENGL існує поняття контекст відтворення (контекст рендеринга), аналогічне поняттю контекст пристрою. Графічна система OPENGL також потребує посилання на пристрій, на який здійснюватиметься вивід. Це спеціальне посилання на контекст відтворення – величина типа HGLRC (handle openGL rendering context, посилання на контекст відтворення OPENGL) - hRC. Перш ніж отримати контекст відтворення, сервер 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; // для работи з бібліотекою OpenGL using Tao.OpenGl; // для работи з бібліотекою FreeGLUT using Tao.FreeGlut; // для работи з елементом управління SimpleOpenGLControl using Tao.Platform.Windows; namespace lab1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); OnGl.InitializeContexts(); } private void Form1_Load(object sender, EventArgs e) { // ініціалізація Glut Glut.glutInit(); Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH); // очитка вікна Gl.glClearColor(255, 255, 255, 1); // установка порта виводу у відповідності з розмірами элемента OnGl Gl.glViewport(0, 0, OnGl.Width, OnGl.Height); // настройка проекції Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity(); Glu.gluPerspective(45, (float)OnGl.Width / (float)OnGl.Height, 0.1, 200); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); // настройка параметрів OpenGL для візуалізації Gl.glEnable(Gl.GL_DEPTH_TEST); } private void button1_Click(object sender, EventArgs e) { Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glLoadIdentity(); Gl.glColor3f(1.0f, 0, 0); Gl.glPushMatrix(); Gl.glTranslated(0, 0, -6); Gl.glRotated(45, 1, 1, 0); // будуємо ромбододекаедр с допомогою бібліотеки FreeGLUT Glut.glutWireRhombicDodecahedron(); Gl.glPopMatrix(); Gl.glFlush(); OnGl.Invalidate(); } private void OnGL_Load(object sender, EventArgs e) { } private void button3_Click(object sender, EventArgs e) { Application.Exit(); } private void button2_Click(object sender, EventArgs e) { Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glLoadIdentity(); Gl.glColor3f(1.0f, 0, 0); Gl.glPushMatrix(); Gl.glTranslated(0, 0, -6); Gl.glRotated(45, 1, 1, 0); Gl.glPopMatrix(); Gl.glFlush(); OnGl.Invalidate(); } } } Виконання програми:  Висновок: На даній лабораторній роботі я створив програми-заготовки для роботи з бібліотекою openGL. Програма створює порожнє вікно для графічного виводу засобами openGL, встановлює всі необхідні параметри графічного виводу, та будує ромбододекаедр с допомогою бібліотеки FreeGLUT.
Антиботан аватар за замовчуванням

22.01.2013 12:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!