DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

Міністерство освіти і науки України Національний університет «Львівська Політехніка» Інститут комп’ютерних технологій автоматики та метрології Кафедра БІТ  Звіт до лабораторної роботи № 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:43

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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