Применение OpenGL в построении сетки рассеивания выбросов в атмосферу дорожно-строительной техникой

НАУЧНЫЙ РЕЗУЛЬТАТ

R F S F A R С H R F S

Самхарадзе К.К., Ерошенко Я.Б. Применение OpenGL в построении сетки рассеивания выбросов в атмосферу дорожно-строительной техникой // Научный результат. Информационные технологии. - Т.3, №2,2018

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ COMPUTER SIMULATION HISTORY

УДК 004.42 DOI: 10.18413/2518-1092-2018-3-2-0-1

Самхарадзе К.К. Ерошенко Я.Б.

ПРИМЕНЕНИЕ OPENGL В ПОСТРОЕНИИ СЕТКИ РАССЕИВАНИЯ ВЫБРОСОВ В АТМОСФЕРУ ДОРОЖНО-СТРОИТЕЛЬНОЙ ТЕХНИКОЙ

Белгородский государственный национальный исследовательский университет, ул. Победы д. 85,

г. Белгород, 308015, Россия

e-mail: koba2111@mail.ru, eroshenko@bsu.edu.ru

Аннотация

Данная статья посвящена реализации основных возможностей графического интерфейса OpenGL при построении сетки рассеивания выбросов вредных веществ в атмосферу дорожно-строительной техникой, отмечена актуальность применения и основные преимущества библиотеки OpenGL относительно других графических интерфейсов. В статье описаны методы расчета параметров рассеивания вредных веществ в атмосферном воздухе, опирающиеся на нормативные документы, утвержденные законодательством РФ. Последовательно изложены основные шаги построения сетки рассеивания в виде 3D диаграммы с помощью OpenGL. Данная диаграмма предназначена для анализа и контроля за состоянием загрязняющих веществ в зоне строительства автомобильной дороги и показывает наиболее опасные для состояния окружающей среды участки и зоны безопасного влияния вредных веществ. В заключительной части статьи приведен пример построения сетки рассеивания оксида углерода (СО), как основного загрязняющего вещества воздушного бассейна строительной техникой.

Ключевые слова: библиотека OpenGL; выбросы в атмосферу; рассеивание выбросов; 3D диаграмма.

UDC 004.42

Samkharadze K.K. Eroshenko Ya.B.

APPLICATION OF OPENGL IN CREATION OF THE GRID OF DISPERSION OF EMISSIONS IN THE ATMOSPHERE BY THE ROAD-BUILDING TECHNICS

Belgorod State National Research University, 85 Pobedy St., Belgorod, 308015, Russia e-mail: koba2111@mail.ru, eroshenko@bsu.edu.ru

Abstract

This article is devoted to the implementation of the main features of the OpenGL graphical interface for constructing a network of dispersion of harmful substances emissions into the atmosphere by road-building equipment while developing the information system, highlighting the relevance and main advantages of the OpenGL library relative to other graphical interfaces. The article describes methods for calculating the parameters of dispersion of harmful substances in the ambient air, based on normative documents approved by the legislation of the Russian Federation. Sequentially outlines the basic steps of building a diffusion grid in the form of a 3D diagram using OpenGL. Such diagram is intended for the analysis and control of the state of the pollutants in the road construction zone and shows the areas and zones of safe influence of harmful substances that are most dangerous for the state of the environment. In the final part of the article, an example is given

Самхарадзе К.К., Ерошенко Я.Б. Применение OpenGL в построении сетки рассеивания выбросов в атмосферу дорожно-строительной техникой // Научный результат. Информационные технологии. - Т.3, №2,2018

of constructing a grid of carbon monoxide (CO) scattering, as the main pollutant of the air basin by construction equipment.

Keywords: OpenGL; air emissions; emission dissipation grid; 3D diagram. ВВЕДЕНИЕ

Современные информационные технологии невозможно представить без использования трехмерной графики и важной составной ее части - анимации. С этим связано множество разработок в области инженерии, компьютерных игр, специализированных информационных систем и др., где вся графика базируется на трехмерных графических ускорителях. Для повышения эффективности работы с ними применяются различные библиотеки, представляющие собой унифицированный интерфейс и действующие через драйверы устройств, которые используются ускорителями.

АКТУАЛЬНОСТЬ ТЕМЫ

Существует несколько интерфейсов для работы с графическими ускорителями: Open Graphic Library (OpenGL), Direct3D, FireMonkey, Vulkan и др. Наиболее актуальным из них является графическая библиотека OpenGL. В отличии от Direct3D, который в основном контролируется компанией Microsoft и постоянно ею изменяется, что является не совсем удобным в использовании, OpenGL изначально разрабатывался для функционирования на различных рабочих платформах. Vulkan - это продукт компании Khronos Group, который пока только теоретически совместим с несколькими платформами, а его поддержка находится на ранней стадии. FireMonkey также имеет некоторые недостатки, к примеру отсутствие элементов, ориентированных на работу с данными, хранящихся в БД.

OpenGL не привязана к конкретной операционной системе, так как не имеет таких специальных команд, как работа с окнами и организация ввода-вывода, но содержит в себе большое множество команд, с помощью которых появляется возможность определять объекты и операции, необходимые для создания интерактивных трехмерных прикладных программ и приложений с использованием визуального контроля трехмерного объекта [1].

Актуальность применения библиотеки OpenGL подтверждается еще и тем, что ее производитель постоянно выпускает расширения к ней, содержащие новые необходимые возможности, связанные с изменением аппаратных средств, причем эти расширения в основном появляются раньше, чем новая версия к Direct3D [2].

OpenGL - это один из самых популярных программных интерфейсов для разработки приложений в области двумерной и трехмерной графики, который с помощью имеющегося набора команд, способен отобразить геометрические объекты на экране [3].

Все эти свойства библиотеки OpenGL позволяют ее использование в построении сетки рассеивания выбросов загрязняющих веществ (ЗВ) в атмосферу в формате 3D.

МЕТОДЫ РАСЧЕТА ПАРАМЕТРОВ

Выбросы загрязняющих атмосферу веществ происходят в процессе любой производственной деятельности: промышленными предприятиями, транспортом и другими техническими установками. Их объем настолько высок, что уровень загрязнения становится опасным из-за превышения допустимых санитарных норм, что отрицательно влияет на здоровье человека и негативно сказываются на благосостоянии окружающей среды [4].

При поступлении ЗВ в окружающую среду происходит их рассеивание. В связи с этим необходимо осуществлять расчет параметров санитарно-защитной зоны и построение сетки рассеивания выбросов в формате 3D.

Расчет параметров рассеивания загрязняющих веществ в атмосферном воздухе осуществляется на основании «Методов расчета рассеивания выбросов вредных

НАУЧНЫЙ РЕЗУЛЬТАТ

R F S F A R С H

I—I /\ Ll I—I L I ISl Самхарадзе К.К., Ерошенко Я.Б. Применение OpenGL в построении сетки рассеивания

JL Л. X ^ » Л. -Л. Л. И J X Ж, Jh v г ^ v / /

т-чт—1 / Т-Г-Г r-pi ж >ti выбросов в атмосферу оорожно-строителънои техникой //

I Г.  J У J J.JZ) J. Jr\. I Научный результат. Информационные технологии. - Т.З, №2,2018

RFSFAFCK R F S tl Г Т

веществ в атмосферном воздухе» (далее Методы), утвержденных приказом Минприроды России от 6 июня 2017 года № 273 [5].

Согласно данным Методам на процесс рассеивания загрязняющих веществ в атмосферном воздухе влияет несколько факторов таких, как техногенные параметры источников выбросов, метеорологические условия рассеивания и физико-географические особенности местности.

В результате рассеивания концентрации загрязняющих веществ в воздушной среде снижаются. В качестве техногенных параметров выступают высота источника выброса, температура выброса, определяемая как разность между температурой выбрасываемой источником смеси и температурой окружающей среды [6].

Графически рассеивание загрязняющих веществ в атмосфере можно представить движением выбросов от источника загрязнения по трем направлениям:

X - параллельно ветру и земле;

Y - параллельно земле и перпендикулярно ветру;

Z - перпендикулярно земле и ветру (см. рисунок 1) [7].

Z

X

Рис. 1. Направления рассеивания загрязняющих веществ в атмосфере Fig. 1. Directions of dispersion of pollutants in the atmosphère

Для построения рассеивание загрязняющих веществ в плоскости XZ на основании Методов определяется расстояние хм от источников выброса, на котором приземная концентрация загрязняющих веществ при неблагоприятных метеорологических условиях достигает максимального значения см по формуле:

5 - F

Хм = — • d • H,

где F - безразмерный коэффициент, учитывающий скорость оседания ЗВ в атмосферном воздухе; H - высота источника выброса, м;

d - безразмерный коэффициент, определяемый в зависимости от параметров, характеризующих свойства источника выброса.

Затем рассчитывается максимальная приземная концентрация загрязняющих веществ Сми при неблагоприятных метеорологических условиях и скорости ветра и, отличающейся от опасной скорости ветра им, по следующей формуле:

Сми = Г • См,

где см - максимальная приземная разовая концентрация ЗВ при опасной скорости ветра им, мг/м3;

_ и

r - безразмерная величина, зависящая от соотношения —.

им

Определение максимальной приземной разовой концентрации загрязняющих веществ см рассматривалось при расчете рассеивания выбросов в атмосферный воздух дорожно-строительной техникой [8].

НАУЧНЫЙ РЕЗУЛЬТАТ

BFSFARCH

Самхарадзе К.К., Ерошенко Я.Б. Применение OpenGL в построении сетки рассеивания выбросов в атмосферу дорожно-строительной техникой // Научный результат. Информационные технологии. - Т.3, №2,2018

Далее определяется расстояние от источника выброса хми, на котором при скорости ветра и и неблагоприятных метеорологических условиях достигается максимальная приземная концентрация загрязняющих веществ сми по формуле:

Хм.и =Р • хм,

и

где р - безразмерная величина, зависящая от соотношения —.

им

На диаграмме рассеивание выбросов загрязняющих веществ в атмосферном воздухе в плоскости XZ имеет вид кривой (см. рисунок. 2).

Z

1, м

ч спдк 1 — 1

__:--->

ХПДК

X

Рис. 2. Рассеивание загрязняющих веществ в плоскости XZ Fig. 2. Dispersion of contaminants in the XZ plane

Для построения сетки рассеивания загрязняющих веществ в плоскости XYZ необходимо определить уровень приземной концентрации Су в каждой точке у) от источника выброса по формуле:

Су= О1 • см) • ^

где Sl - безразмерный коэффициент, определяемый в зависимости от отношения — и коэффициента

им

F;

S2 - безразмерный коэффициент, определяемый в зависимости от скорости ветра и. На диаграмме сетка рассеивания загрязняющих веществ в плоскости XYZ выглядит следующим образом (см. рисунок 3):

Рис. 3. Сетка рассеивания загрязняющих веществ Fig. 3. Distribution grid for pollutants

I—I /\ LI I—I L I ISl Самхарадзе K.K., Ерошенко Я.Б. Применение OpenGL в построении сетки рассеивания

JL J- X ^ » J- J- J, 1 J X Ж, Jh V г л V V / /

т-чт—1 7- Т-Г-Г r-pi ж >Ti выбросов в атмосферу оорожно-строителънои техникой //

I Г.  J У J J.JD J. ± Научный результат. Информационные технологии. - Т.З, №2,2018

RFSFAFCK R F S tl Г Т

Результатом построения сетки рассеивания является определение наиболее опасных зон, где необходимо в первую очередь осуществить мероприятия по предупреждению и снижению загрязнения атмосферного воздуха выбросами пыли и отработавшими газами, а также определение в этих зонах экологических рисков и рисков для здоровья населения, наносимых окружающей природной среде и человеку.

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Для реализации процесса построения сетки рассеивания выбросов в атмосферный воздух от дорожно-строительной техники с помощью OpenGL необходимо сначала инициализировать плоскость сцены рисования.

Это можно сделать с помощью пользовательской функции:

template<typename T> void InitOpenGL(T panel) {

hDC = GetDC((HWND)panel->Handle.ToPointer()); PixelFormat= ChoosePixelFormat(hDC, &pfd); SetPixelFormat(hDC, PixelFormat, &pfd); hRC = wglCreateContext(hDC); wglMakeCurrent(hDC, hRC);

}

Параметр panel - это контейнер, в котором будет происходить рисование геометрических примитивов.

Следующим шагом необходимо очистить сцену рисования и задать цвет фона, организовать вращение сцены в 3-х плоскостях, приближение и отдаление, а также задать параметры освещения

[9].

Это можно сделать следующим образом:

// создаем контекст рисования glClearColor(1.0, 1.0, 1.0, 1.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity();

// вращение сцены glRotated(angleX, 1.0, 0.0, 0.0); glRotated(angleY, 0.0, 1.0, 0.0); glRotated(angleZ, 0.0, 0.0, 1.0);

glScaled(pow(zoomX, -1.0), pow(zoomY, -1.0), pow(zoomZ, -1.0));

// освещение сцены

glEnable(GL_LIGHTING);

glEnable(GL_NORMALIZE);

GLfloat diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; // диффузный цвет света GLfloat position[] = { 0.0, 0.0, zoomZ, 1.0 }; // направление света glEnable(GL_LIGHT0);

glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); glLightfv(GL_LIGHT0, GL_POSITION, position); glEnable(GL_COLOR_MATERIAL);

Сетка рассеивания выбросов строится с помощью примитивных геометрических объектов OpenGL - линий типа GL_LINE_STRIP, когда каждая следующая вершина является концом текущего отрезка прямой и началом для следующего [10].

Рисование этих линий реализовано в пользовательской функции:

НАУЧНЫЙ РЕЗУЛЬТАТ

BFSFARCH

Самхарадзе К.К., Ерошенко Я.Б. Применение OpenGL в построении сетки рассеивания выбросов в атмосферу дорожно-строительной техникой // Научный результат. Информационные технологии. - Т.3, №2,2018

GLvoid glDrawLineStrip(List<Point3DA> Apoints, Color Acolor, GLdouble width = 1.0) {

glColor4d(color->R / 256.0, color->G / 256.0, color->B / 256.0, color->A / 256.0);

glLineWidth(width);

glBegin(GL_LINE_STRIP);

for

glVertex3d(points[i]->X, points[i]->Y, points[i]->Z); glEnd();

}

List<List<Point3DA>A> Adata = substances[indexSubstance]->getCxy();

List<List<Point3DA>A> Adata2 = gcnew List<List<Point3DA>A>();

for (int i = 0; i < data[0]->Count; i++) {

List<Point3DA> Alines = gcnew List<Point3DA>

lines->Add(gcnew Point3D(data[j][i]->X, data[j][i]->Y, data[j][i]->Z)); data2->Add(lines);

}

for (int i = 0; i < data->Count; i++) {

glDrawLineStrip(data[i], substances[indexSubstance]->getColor(), 1.0); for (int j = 0; j < data[i]->Count; j++) data[i][j]->Y *= -1.0; glDrawLineStrip(data[i], substances[indexSubstance]->getColor(), 1.0);

}

for (int i = 0; i < data2->Count; i++) {

glDrawLineStrip(data2[i], substances[indexSubstance]->getColor(), 1.0); for (int j = 0; j < data2[i]->Count; j++) data2[i][j]->Y *= -1.0; glDrawLineStrip(data2[i], substances[indexSubstance]->getColor(), 1.0) ;

}

Для обозначения границ хм и xM.u используем эллипсы соответствующих радиусов относительно центра источника выбросов.

Рисование эллипса реализовано в пользовательской функции:

GLvoid glDrawEllips(Point3D Aposition, GLdouble radiusX, GLdouble radiusY, Color Acolor, GLdouble width = 1.0) {

glColor4d(color->R / 256.0, color->G / 256.0, color->B / 256.0, color->A / 256.0);

glLineWidth(width);

glBegin(GL_LINE_LOOP);

unsigned long int amountSegments = 100;

for (unsigned long int i = 0; i < amountSegments; i++) {

GLdouble angle = 2.0 * Math::PI * (GLdouble)i / (GLdouble)amountSegments; GLdouble x3 = radiusX * sinf(angle); GLdouble y3 = radiusY * cosf(angle);

glVertex3d(x3 + position->X, y3 + position->Y, position->Z);

}

glEnd();

}

double Xm = substances[indexSubstance]->getXm(); double Xmu = substances[indexSubstance]->getXmu(); glDrawEllips(gcnew Point3D(0.0, 0.0, 0.0), Xm, Xm, Color::Red, 2); glDrawEllips(gcnew Point3D(0.0, 0.0, 0.0), Xmu, Xmu, Color::Green, 2); glDrawEllips(gcnew Point3D(0.0, 0.0, 0.0), zoomX, zoomY, Color::Black, 2);

В качестве примера построим сетку рассеивания выбросов оксида углерода (СО) от дорожно-строительной техники (автогрейдера, трактора и асфальтоукладчика) на участке строительства дороги (см. рисунок 4) с помощью OpenGL и представим ее в виде 3D диграммы.

НАУЧНЫЙ РЕЗУЛЬТАТ

Самхарадзе К.К., Ерошенко Я.Б. Применение OpenGL в построении сетки рассеивания выбросов в атмосферу дорожно-строительной техникой // Научный результат. Информационные технологии. - Т.3, №2,2018

Рис. 4. Построение сетки рассеивания оксида углерода Fig. 4. Construction of a network of carbon monoxide dispersal

На рисунке 4 видны зоны рассеивания оксида углерода (СО): красным цветом (на расстоянии хм = 12,6 м от точки выброса) обозначена граница максимальной концентрации вредного вещества, зеленым цветом (на расстоянии xMU = 76,8 м от точки выброса) - граница концентрации при скорости ветра u, отличающейся от опасной скорости ветра им.

ЗАКЛЮЧЕНИЕ

Таким образом, библиотека OpenGL является одним из самых популярных программных интерфейсов для разработки приложений в области двумерной и трехмерной графики. К ее характерным особенностям относятся стабильность, надежность, постоянно развивающиеся дополнения и расширения, легкость в применении и понятный интерфейс. Это наиболее актуальное решение в построении сетки рассеивания выбросов вредных веществ в атмосферный воздух из различных источников.

I—I /\ LI I—I L I ISl Самхарадзе K.K., Ерошенко Я.Б. Применение OpenGL в построении сетки рассеивания

JL X. X X X. X X. И J X Ж, Хн V г V V / /

т-чт—1 7- 7—гт r-pi ж >Ti выбросов в атмосферу дорожно-строителънои техникой //

I Г.  J У J J.JZ) J. Jr\. I Научный результат. Информационные технологии. - Т.З, №2,2018

RFSFAFCK R F S tl Г Т

В результате применения OpenGL в области построения сетки рассеивания выбросов формируется 3D диаграмма для визуального анализа и контроля состояния загрязняющих веществ в рабочей зоне.

Данная диаграмма служит наглядным материалом отображения наиболее опасных для состояния окружающей среды участков, зон предельно-допустимых значений и мест, где влияние вредных веществ является безопасным, и основой для планирования мероприятий по снижению уровня загрязнений как рабочей зоны, так и окружающего пространства жилой зоны в городских условиях.

Список литературы

1. Боресков А. В. Графика трехмерной компьютерной игры на основе OpenGL. М.: ДИАЛОГ-МИФИ, 2004.384 с.

2. Гайдуков С. А. OpenGL. Профессиональное программирование трехмерной графи на C++. СПб.: БХВ-Петербург, 2004. 736 с.

3. Учебное пособие по OpenGL. URL: http://rsdn.0rg/article/opengl/ogltutor.xml#E6B (дата обращения: 26.02.2018).

4. Ерошенко Я. Б., Самхарадзе К. К. Мониторинг загрязнения воздушного бассейна строительной техникой // Инновации в науке: научный журнал. № 8 (69). Новосибирск: Изд. АНС «СибАК», 2017. С. 7-10.

5. Приказ Минприроды России от 06 июня 2017 г. № 273 «Об утверждении методов расчетов рассеивания выбросов вредных (загрязняющих) веществ в атмосферном воздухе». Информационно-правовой портал ГАРАНТ.РУ. URL: http://www.garant.rU/products/ipo/prime/doc/71642906/#ixzz4sqFY4uHz (дата обращения: 26.02.2018).

6. Венцель В. Д., Сердюк В. С., Янчий С. В. Основы промышленной экологии и природопользования. Омск: Изд-во ОмГТУ, 2010. 136 с.

7. Майорова Л. П., Тищенко Л. П., Тищенко А. А. Защита атмосферы: практикум. Хабаровск: Изд-во Тихоокеан. гос. ун-та, с. 2014. 117 с.

8. Ерошенко Я. Б., Самхарадзе К. К. Компьютерный анализ рассеивания выбросов в атмосферный воздух дорожно-строительной техникой // Научные ведомости БелГу. Экономика. Информатика. 2018. Том 45, № 1. С. 111-117

9. OpenGL Red Book (русская версия). URL: http://www.hardforum.ru/download/RedBook.pdf (дата обращения: 20.03.2018).

10.Васильев С. А. OpenGL. Компьютерная графика. Тамбов: Изд-во Тамб. гос.техн. ун-та, 2005. 80 с.

References

1. Boreskov A. V. The graphics of a three-dimensional computer game based on OpenGL. M.: DIALOG-MIFI, 2004. 384 p.

2. Gajdukov S. A. OpenGL. Professional programming of three-dimensional graphics in C ++. SPb.: BHV-Peterburg, 2004. 736 p.

3. OpenGL tutorial. URL: http://rsdn.org/article/opengl/ogltutor.xml#E6B (accessed: 26.02.2018).

4. Eroshenko Ja.B., Samharadze K.K. Construction machinery air pollution monitoring // Innovations in science: a scientific journal. № 8 (69). Novosibirsk: Izd. ANS «SibAK», 2017. P. 7-10.

5. Prikaz Minprirody Rossii ot 06 ijunja 2017 g. № 273 «On the approval of methods for calculating the dispersion of emissions of harmful (polluting) substances in the atmospheric air». Informacionno-pravovoj portal GARANT.RU. URL: http://www.garant.ru/products/ipo/prime/doc/71642906/#ixzz4sqFY4uHz (accessed: 26.02.2018).

6. Vencel' V.D., Serdjuk V.S., Janchij S.V. Fundamentals of industrial ecology and nature management. Omsk: Izd-vo OmGTU, 2010. 136 p.

7. Majorova L.P., Tishhenko L.P., Tishhenko A.A. Protection of the Atmosphere: Workshop. Habarovsk: Izd-vo Tihookean. gos. un-ta, s. 2014. 117 p.

I—I /\ LI I—I L I ISl Самхарадзе K.K., Ерошенко Я.Б. Применение OpenGL в построении сетки рассеивания

JL X. X X X. X X. И J X Ж, Хн V г V V / /

т-чт—1 7- Т-Г-Г r-pi ж >Ti выбросов в атмосферу оорожно-строителънои техникой //

I Г.  J У J J.JD J. ± Научный результат. Информационные технологии. - Т.З, №2,2018

RFSFAFCK R F S tl Г Т

8. Eroshenko Ja.B., Samharadze K.K. Computer analysis of discrimination of emissions to atmospheric air by road-building technics // Belgorod State University Scientific Bulletin. Economics Information technologies 2018. Tom 45, № 1. P. 111-117.

9. OpenGL Red Book (Russian version). URL: http://www.hardforum.ru/download/RedBook.pdf (accessed: 20.03.2018).

10.Vasil'ev S.A. OpenGL. Computer graphics. Tambov: Izd-vo Tamb. gos.tehn. un-ta, 2005. 80 p.

Ерошенко Яна Борисовна, старший преподаватель кафедры математического и программного обеспечения информационных систем

Самхарадзе Коба Кобаевич, студент кафедры математического и программного обеспечения информационных систем

Samkharadze Koba Kobaevich, student at the Department of Mathematical and Software Information Systems Eroshenko Yana Borisovna, senior lecturer at the Department of Mathematical and Software Information Systems