Главная страница
Навигация по странице:

  • Шаг 7.

  • Графическое программирование c применением OpenGL. Графическое программирование c применением Opengl создание проекта и подключение библиотеки Tao Opengl в С#


    Скачать 0.65 Mb.
    НазваниеГрафическое программирование c применением Opengl создание проекта и подключение библиотеки Tao Opengl в С#
    Дата23.03.2023
    Размер0.65 Mb.
    Формат файлаdocx
    Имя файлаГрафическое программирование c применением OpenGL.docx
    ТипДокументы
    #1011014

    Графическое программирование 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;

    }

    }

    }



    написать администратору сайта