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

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

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

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

Рік:
2015
Тип роботи:
Графіки
Предмет:
Програмування
Група:
УІ-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 для побудови зображення.
Антиботан аватар за замовчуванням

2015

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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