DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт до лабораторної роботи № 1 з дисципліни «Програмування комп’ютерної графіки» на тему: «Створення проекту і підключення бібліотеки TaoOpenGL в C#»

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

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

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

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Програмування комп’ютерної графіки
Група:
ЗІ-32
Коротко про документ

Про що ця робота

Звіт до лабораторної роботи присвячено створенню проекту в середовищі C# та підключенню графічних бібліотек TaoOpenGL і FreeGLUT. Розглянуто ініціалізацію елемента SimpleOpenGLControl та реалізацію базової візуалізації тривимірних примітивів.

У роботі розглядаються

  • Програмування комп'ютерної графіки
  • OpenGL в C#
  • Бібліотека TaoFramework
  • FreeGLUT
  • Windows Forms
  • Візуалізація тривимірних примітивів

Зміст і розділи

  1. Порядок виконання роботи
  2. Текст програми
  3. Результат роботи програми
  4. Висновок
Для кого:Студенти технічних спеціальностей, що вивчають комп'ютерну графіку та програмування.
Викладачі:Войтусик С. С.

Ключові поняття

TaoOpenGLFreeGLUTSimpleOpenGLControlC#Windows FormsOpenGLвізуалізаціясферабуфер глибинирендеринг

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЗІ / Звіт до лабораторної роботи № 1 з дисципліни “Програмування комп’ютерної графіки” Створення проекту і підключення бібліотеки TaoOPENGL в С# Перевірив: Львів – 2011 Порядок виконання роботи Мета роботи - cтворення програми-заготовки для роботи з бібліотекою OpenGL. Спочатку створіть новий проект, як шаблон встановивши додаток WindowsForms. Назвіть його TaoGl_<grupa>_<prizvyshe>. Дочекайтесь поки MSVisualStudioзакінчить генерацію кода шаблону. Тепер перейдіть до вікна SolutionExplorer. Перейдіть на вузол Links, який відображає зв'язки з бібліотеками, необхідними для роботи нашого застосування (рис. 1) / Рис. 1 Назвіть головне вікно «Графіка …… ». (Властивості вікна, параметр Text). Клацніть по цьому вузлу (Links) правою клавішею миші, після чого, в контекстному меню, що відкрилося, виберіть «Додати посилання» (“AddLink”), як показано на рис. 2. / Рис. 2 У вікні, що відкрилося, «Додати посилання», перейдіть до закладки огляд. Після цього перейдіть до директорії, в яку була встановлена бібліотека TaoFramework. (Позамовчанню - “C:\programFiles\taoFramework\”). Нам буде потрібно теку bin- в ній зберігаються необхідні нам бібліотеки. Перейдіть в теку binі виберіть 3 бібліотеки, як показано на малюнку 3: Tao.OpenGL.dll - відповідає за реалізація бібліотеки OPENGL Tao.FreeGlut.dll - відповідає за реалізацію функцій бібліоєкиGlut. Ми її використовуватимемо для ініціалізації рендера, а так само для різних інших цілей. Tao.Platform.Windows.dll - відповідає за підтримку елементів безпосередньо для візуалізації безпосередньо на платформі Windows (Рис. 2). / Рис. 3 Тепер перейдіть до початкового коду вікна. Для роботи з нашими бібліотеками, нам необхідно підключити відповідні простори імен: 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; Тепер поверніться до конструктора діалогового вікна і перейдіть до вікна Toolbox (панель елементів). Клацніть правою кнопкою на вкладці «Загальні», і в контекстному меню, що розкрилося, виберіть пункт «Вибрати елементи» (Selectelements), як показано на Рис. 4. / Рис. 4 У вікні, що відкрилося, знайдіть елемент Simpleopenglcontrolі встановіть біля нього галочку, як показано на Рис. 5. Потім натисніть ОК. / Рис. 5 Тепер даний елемент стане доступним для розміщення на формі додатку. Перетягніть елемент на форму, і розмістіть так, як показано на малюнку 7. Праворуч від розміщеного елементу встановіть 3 кнопки - «Візуалізувати», «Візуалізувати»і «Вийти». Наступним кроком буде виділити елемент simpleopenglcontrol1, розташований на формі і перейти до його властивостей. Змініть параметр name на значення “AnT”. / Рис. 6 Тепер нам необхідно ініціалізувати роботу Opengl. Спочатку ми в конструкторі класу повинні ініціалізувати роботу елементу OnGl: public Form1() { InitializeComponent(); OnGl.InitializeContexts(); } Знову перейдіть до конструктора і зробіть подвійне клацання лівою клавішею миші на формі - утвориться функція обробник події завантаження форми. У ній ми помістимо код ініціалізації Opengl. Детальний опис того, що робить цей кодбуде розглянуто нижче, а зараз ми тільки протестуємо роботу бібліотек OPENGLі FREEGLUT. 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);   } Увікні ми створили 3 кнопки. Обробник кнопки вийти буде виглядати наступним чином: // Обробник кнопки "вийти" private void button2_Click(object sender, EventArgs e) { Application.Exit(); } Обробник кнопки «Візуалізувати» буде міститикод, щореалізуєвізуалізацію сіткового каркаса сфери, або іншої фігури, (завідрисовку тривимірної сфери відповідатиме бібліотека FREEGLUT). Код, який буде розміщений в даній функції, відповідає за різні технічні аспекти візуалізація. Код функції: // обробник кнопки "візуалізувати" 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.glutWireSphere(2, 32, 32); //будуєморомбододекаедрсдопомогоюбібліотекиFreeGLUT Glut.glutWireRhombicDodecahedron(); Gl.glPopMatrix(); Gl.glFlush(); OnGl.Invalidate(); } Обробник кнопки “Очистити” напишіть самостійно. Текст програми using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; // для роботи з бібліотекою OpenGL using Tao.OpenGl; // для роботи з бібліотекою FreeGLUT using Tao.FreeGlut; // для роботи з бібліотекою SimpleOpenGLControl using Tao.Platform.Windows; namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); AnT.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); // установка порту виводу у відповідності з розмірами елемента anT 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(); // налаштування параметрів 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.glutWireSphere(2, 32, 32); Gl.glPopMatrix(); Gl.glFlush(); AnT.Invalidate(); } private void button2_Click(object sender, EventArgs e) { // обробник кнопки «Очищення» Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); AnT.Invalidate(); } private void button3_Click(object sender, EventArgs e) { Application.Exit(); } } } Результат роботи програми Коли натиснемо на кнопку «Візуалізація», то отримаємо зображення сфери: / Рис. 7 Коли натиснемо кнопку «Очищення», то зображення зникне: / Рис. 8 Висновок В данай лабораторній роботі я навчився використовувати елементи бібліотеки OpenGl для побудови зображення.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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