Графическое программирование c применением OpenGL. Графическое программирование c применением Opengl создание проекта и подключение библиотеки Tao Opengl в С#
Скачать 0.65 Mb.
|
Графическое программирование c применением OpenGL Создание проекта и подключение библиотеки Tao OpenGL в С# Шаг 1 (при выполнении работы на личном ПК). Устанавливаем Tao Framework (www.sourceforge.net/projects/taoframework) Шаг 2. Создаем новый проект, в качестве шаблона установив приложение Windows Forms. Шаг 3. Подключаем библиотеки. Теперь перейдем к окну Solution Explorer (Обозреватель решений). Здесь нас интересует узел References, который отображает связи с библиотеками, необходимыми для работы приложения: Щелкните по узлу References правой клавишей мыши, после чего в открывшемся контекстном меню выберите «Добавить ссылку» («Add References»). В открывшемся окне перейдите к закладке «Обзор». После этого перейдите к директории, в которую была установлена библиотека Tao Framework. Нам потребуется папка bin – в ней хранятся необходимые нам библиотеки. Переходим в папку bin и выбераеме 3 библиотеки: Tao.OpenGL.dll - отвечает за реализацию библиотеки OpenGL. Tao.FreeGlut.dll - отвечает за реализацию функций библиотеки Glut. Tao.Platform.Windows.dll - отвечает за поддержку элементов непосредственно для визуализации на платформе Windows. Шаг 4. Добавляем компонент SimpleOpenGLControl на котором будем рисовать в нашем проекте. Библиотека, к сожалению, не умеет сразу выводить изображение на компоненты формы, поэтому необходимо подключать отдельный компонент. Для добавления данного компонента необходимо выполнить следующие действия. В окне инструменты (toolbox) нажимаем правую кнопку мыши и нажимаем на кнопку добавить компоненты (Chose Items). В открывшемся диалоговом окне выбираем вкладку .Net Framework Components и в ней нажимаем клавишу Browse. Далее заходим в директорию с библиотеками Tао Framework и выбираем библиотеку Tao.Platform.Windows.dll в которой хранится компонент на котором будем рисовать в нашем проекте. Компонент SimpleOpenGLControl появится в панели компонентов и его можно будет расположить на поверхности формы. Изменим имя SimpleOpenGLControl - найдем в окне свойств параметр (Name) это и есть название элемента (SimpleOpenGlControl1). Шаг 5. Дополняем перечень используемых библиотек: б Шаг 6. Инициализация компонента OpenGL. Переходим к исходному коду окна и для работы с библиотеками необходимо их подключить: Шаг 7. Вернемся в конструктор формы и в окне свойств (properties) перейдем в события. Найдем событие «Paint» - именно оно вызывается для перерисовки компонента, на поверхности которого мы будем рисовать. Для проверки правильности подключения OpenGL добавим несколько команд OpenGL - закрасим всю поверхность компонента синим цветом. После запуска приложение инициализирует OpenGL и закрасит наш компонент синим цветом. Шаг 8. Рисуем произвольную 2D фигуру (треугольник, четырехугольник или полигон). Например: glClear(GL_COLOR_BUFFER_BIT);// очистка буфера кадра(буфера цвета) glBegin(GL_TRIANGLES); // начинаем рисовать треугольник glColor3f(1,0,0); // цвет первой вершины glVertex3f(-0.5,0.5,0); // координаты первой вершины glColor3f(0,1,0); // цвет второй вершины glVertex3f(0.5,0.5,0); // координаты второй вершины glColor3f(0,0,1); // цвет третьей вершины glVertex3f(0,-0.5,0); // координаты третьей вершины glEnd; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; /// using Tao.OpenGl; using Tao.FreeGlut; using Tao.Platform.Windows; namespace WindowsFormsApp1 { public partial class Form1: Form { public Form1() { InitializeComponent(); holst.InitializeContexts(); } private void holst_Paint(object sender, PaintEventArgs e) { Gl.glViewport(0, 0, holst.Width, holst.Height); Gl.glClearColor(0f, 0f, 1f, 1); Gl.glClear(Gl.GL_COLOR_BUFFER_BIT); holst.Invalidate(); } } } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Tao.OpenGl; using Tao.FreeGlut; using Tao.Platform.Windows; namespace WindowsFormsApp2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); holst.InitializeContexts(); } private void holst_Paint(object sender, PaintEventArgs e) { Gl.glBegin(Gl.GL_TRIANGLES); Gl.glColor3f(1, 0, 0); Gl.glVertex3f(-0.5, 0.5, 0); Gl.glColor3f(0, 1, 0); Gl.glVertex3f(0.5, 0.5, 0); Gl.glColor3f(0, 0, 1); Gl.glVertex3f(0, -0.5, 0); Gl.glEnd; } } } |