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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЗІ  Звіт до лабораторної роботи № 1 Створення проекту і підключення бібліотеки Tao OPENGL в С# З дисципліни “Програмування комп’ютерної графіки” Львів – 2011 Порядок виконання роботи Спочатку створіть новий проект, як шаблон встановивши додаток WindowsForms. Назвіть його TaoGl_<grupa>_<prizvyshe>. Дочекайтесь поки MSVisualStudioзакінчить генерацію кода шаблону. Тепер перейдіть до вікна SolutionExplorer. Перейдіть на вузол Links, який відображає зв'язки з бібліотеками, необхідними для роботи нашого застосування (рис. 1)  Назвіть головне вікно «Графіка …… ». (Властивості вікна, параметр Text). Клацніть по цьому вузлу (Links) правою клавішею миші, після чого, в контекстному меню, що відкрилося, виберіть «Додати посилання» (“AddLink”), як показано на рис. 2.  У вікні, що відкрилося, «Додати посилання», перейдіть до закладки огляд. Після цього перейдіть до директорії, в яку була встановлена бібліотека TaoFramework. (Позамовчанню - “C:\programFiles\taoFramework\”). Нам буде потрібно теку 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 (панель елементів). Клацніть правою кнопкою на вкладці «Загальні», і в контекстному меню, що розкрилося, виберіть пункт «Вибрати елементи» (Selectelements), як показано на рис. 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(); } Обробник кнопки “Очистити” напишіть самостійно. Текст програми 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; using Tao.OpenGl; using Tao.FreeGlut; using Tao.Platform.Windows; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); OnGl.InitializeContexts(); } private void Form1_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, 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(); Gl.glEnable(Gl.GL_DEPTH_TEST); } private void Візуалізація_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); Glut.glutWireRhombicDodecahedron(); Gl.glPopMatrix(); Gl.glFlush(); OnGl.Invalidate(); } private void Очистка_Click(object sender, EventArgs e) { Gl.glLoadIdentity(); OnGl.Invalidate(); } private void Вихід_Click(object sender, EventArgs e) { Application.Exit(); } } } Результат виконання програми Коли натиснемо на кнопку “Візуалізувати” отримаємо зображення ромбодо-декаедру  Натиснувши на кнопку очистити зображення стреться  Висновок В данай лабораторній роботі я навчився використовувати елементи бібліотеки OpenGl для побудови зображення.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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