Створення проекту і підключення бібліотеки Tao OPENGL в С#

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

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

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

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Програмування

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

Лабораторна робота № 1. Створення проекту і підключення бібліотеки Tao OPENGL в С#. Спочатку створіть новий проект, як шаблон встановивши додаток Windows Forms. Назвіть його TaoGl_<grupa>_<prizvyshe>. Дочекайтесь поки MS Visual Studio закінчить генерацію кода шаблону. Тепер перейдіть до вікна Solution Explorer. Перейдіть на вузол Links, який відображає зв'язки з бібліотеками, необхідними для роботи нашого застосування (рис. 1) / Назвіть головне вікно «Графіка …… ». (Властивості вікна, параметр Text). Клацніть по цьому вузлу (Links) правою клавішею миші, після чого, в контекстному меню, що відкрилося, виберіть «Додати посилання» (“Add Link”), як показано на рис. 2. / У вікні, що відкрилося, «Додати посилання», перейдіть до закладки огляд. Після цього перейдіть до директорії, в яку була встановлена бібліотека Tao Framework. (По замовчанню - “C:\program Files\tao Framework\”). Нам буде потрібно теку bin - в ній зберігаються необхідні нам бібліотеки. Перейдіть в теку bin і виберіть 3 бібліотеки, як показано на малюнку 3: Tao.OpenGL.dll - відповідає за реалізація бібліотеки OPENGL Tao.FreeGlut.dll - відповідає за реалізацію функцій бібліоєки Glut. Ми її використовуватимемо для ініціалізації рендера, а так само для різних інших цілей. Tao.Platform.Windows.dll - відповідає за підтримку елементів безпосередньо для візуалізації безпосередньо на платформі Windows. / Тепер перейдіть до початкового коду вікна. Для роботи з нашими бібліотеками, нам необхідно підключити відповідні простори імен: 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; Рис. 4. Тепер поверніться до конструктора діалогового вікна і перейдіть до вікна Toolbox (панель елементів). Клацніть правою кнопкою на вкладці «Загальні», і в контекстному меню, що розкрилося, виберіть пункт «Вибрати елементи» (Select elements), як показано на рис. 5. / рис. 5. У вікні, що відкрилося, знайдіть елемент Simpleopenglcontrol і встановіть біля нього галочку, як показано на рис. 6. Потім натисніть ОК. / Рис.6. Тепер даний елемент стане доступним для розміщення на формі додатку. Перетягніть елемент на форму, і розмістіть так, як показано на малюнку 7. Праворуч від розміщеного елементу встановіть 3 кнопки - «Візуалізувати», «Візуалізувати» і «Вийти». Наступним кроком буде виділити елемент simpleopenglcontrol1, розташований на формі і перейти до його властивостей. Змініть параметр name на значення “OnGl”. / Рис.8. Тепер нам необхідно ініціалізувати роботу 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(); } Обробник кнопки “Очистити” напишіть самостійно. Відкомпілюйте і запустіть додаток. Результат роботи додатку показаний на малюнку 9. Якщо ви правильно набрали всі початкові коди і виконали всі описані дії, то ви побачите аналогічну візуалізацію сфери, після натиснення на кнопці «Візуалізувати». Після натиснення на кнопку “Очистити” вікно зі сферою очиститься. /
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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