Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

ВИЗУАЛИЗАЦИЯ РЕЗУЛЬТАТОВ МОДЕЛИРОВАНИЯ ТЕЧЕНИЙ ГАЗОВ И ЖИДКО-СТЕЙ. ЧАСТЬ 1. АНИМАЦИЯ ГРАФИКА ПОВЕРХНОСТИ

Маркин Е.Е. 1 Скачков П.П. 1
1 Уральский государственный университет путей сообщения
Целью работы является разработка программы для анимации процессов в течениях газа. Решения полной системы уравнений Навье Стокса, описывающей двухмерные течения сжимаемого вязкого теплопроводного идеального газа, позволяют определить все термодинамические переменные таких течений. Для анализа результатов вычислений полезно рассмотрение визуализации поверхностей этих переменных в трехмерном пространстве и анимация этих поверхностей по времени протекания процесса. Существенной особенностью программы является то, что она непосредственно взаимодействуя с массивом данных позволяет сдвигать, менять масштаб и поворачивать график в процессе анимации. Все эти действия можно с помощью манипулятора мышь, а также используя удобный интерфейс. График поверхности строиться в параллелепипеде с размерами (x1,x2), (y1,y2), (z1,z2), а повороты графика можно проводить на углы α=∠ (Oz,Oz') и β=∠ (Ox,Ox').
система уравнений навье-стокса
график поверхности
преобразование системы координат
asp.net c#
1. Баутин С. П.. Замыслов В. Е. Об одном представлении приближенных решений пол-ной системы уравнений Навье-Стокса // Проблемы прикладной математики и меха-ники. – Екатеринбург: УрГУПС.– 2011. Вып. 95(178)/6м.– С. 5 – 16.
2. Боресков А. В. Предисл.: Садовничий В. А. “Параллельные вычисления на GPU. Архитектура и программная модель CUDA”: Учебное пособие. Издательство Мос-ковского университета, 2012 Перепелт, 336 стр. ISBN: 978-5-211-06340-2
3. Кирьянов Д. В. “Mathcad 15 / Mathcad Prime 1.0” Год 2012/ Издательство БХВ-Петербург.
4. Маркин Е.Е., Скачков П.П. Гетерогенные параллельные вычисления на примере решения полной системы уравнений Навье-Стокса методом сеток. Международный студенче-ский научный вестник. Выпуск 5. 2017
5. 5. Эндрю Троелсен. “Pro C# 5.0 and the .NET 4.5 Framework” Год издания: 2012 ISBN: 978-1430242338 (en), 978-5-8459-1957-1 (ru).

Введение

Рассматривается полная система уравнений Навье Стокса, решения которой описывают течения сжимаемого вязкого теплопроводного идеального газа [1]. Система дифференциальных уравнений для переменных и программа их вычисления содержатся в работе [4]. Результатом работы программы являются массивы, записываемые в файлы данных[2]. Эти массивы содержат значения давления, удельного объема и скоростей. Файлы открываются в ППП MathCAD (MatLab) и произвести анимацию процессов протекающих в течении газа[3].

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

В дальнейшем планируется построить программу для прямой анимации графика векторного поля скоростей.

Постановка задачи

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

Математическая постановка задачи

Рис. 1. Поворот и параллельный сдвиг системы координат.

График поверхности будет строиться в параллелепипеде с размерами (xx1,xx2), (yy1,yy2), (zz1,zz2). Для поворота системы координат введем понятие точки с координатами (x0,y0,z0), а также углов относительно которых будет осуществляться поворот всей системы, – относительно оси OZ и – относительно оси OX.

Для решения данной задачи воспользуемся формулами для вычисления (1). Сдвиг в точку с учетом углов α и β описывается матрицами преобразования координат

(1)

После перемножения матриц получим формулу для вычисления .

Обозначим, что в плоскости монитора лежат оси OX и OY, а ось OZ перпендикулярна экрану. Пусть переменные xx и yy обозначают точку на экране монитора, тогда (xx, yy) искомые точки графика будут найдены по формуле (2)

(2)

– коэффициенты перспективы, находятся экспериментально.

Написание программы

Создадим форму и расположим на ней элементы, показанные на рисунке 2. На форме главным образом располагаются поля для ввода размеров слоя (N, M), время моделирования (TK), и частота кадров (FPS). После открытия файла данные поля отключаются, а вкладки активируются, на них можно менять область определения графика поверхности, регулировать масштабы осей и регулировать подписи[6].

Для работы с графиком поверхности объявим переменные, показанные на листинге 1. Переменные , , , , обозначают область определения графика поверхности, значения из массива равномерно заполняют поверхность с шагом и , где ; . (4)

Рис. 2. Главное окно программы.

Пользователь должен вводить размеры моделируемой области (N,M), время моделирования (TK), область определения графика поверхности по осям OX, OY, OZ, и масштабирования графика в целом, так и по осям.

Листинг 1. Объявление переменных

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

Функция для преобразования координат и масштабирования

Функция для рисования графика поверхности.

Функция чтения данных из файла

Функция анимирования графика поверхности

Переменным N, M присваиваем значения с формы. Количество кадров (переменная C) определяется TK x FPS (время моделирования умножить на колличество кадров в секунду). Этих данных достаточно для загрузки массива в память.

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

Листинг 2. Фрагмент функции импорта даных.

Теперь массив находится в памяти. Следующим шагом будет написание функции преобразования координат графика поверхности(x,y,z) в каординаты точки на мониторе(xx,yy). Функция приведена полностью на листинге 3. Переменные xx и yy являются глобальными, после вызова функции Zoom_xyz() считываем с них значение.

Листинг 3. Преобразование координат.

И последняя основная функция приведена на листинге 4. В ней отрисовывается график поверхности. Весь слой делится на прямоугольники которые будут выводиться на экран по отдельности, ширина и длина прямоугольников определяется по формуле (4). Так же в этой функции отрисовываются оси, выводится надписи и тд..

Листинг 4. Отрывок функции вывода графика поверхности на экран

Функция pictureBox_Paint() является методом события Paint, обьекта PictureBox, расположенного на форме. Это нужно для того чтобы изображение не исчезало при перекрытии другми оконами или изменении размеров.

Теперь наш график ввыводится на экран однако нам нужно его поворачивать перемещать и масштабировать. Для этого настроим перемещение на правую кнопку мыши, поворот на левую, а масштабирование на колесико мыши. В событиях на обьекте PictureBox добавим метод MouseMove(перемещение мыши по обьекту). В нем определяем какая кнопка мыши нажата. На листинге 5 приведен отрывок кода для поворота системы координат, перемещение осуществляется подобным образом.

Листинг 5. Отрывок функции обработки поворота и перемещения графика.

Для того что бы настроить колесико мыши на масштабирование графика поверхности необходимо определить метод для события MouseWheel. Делается это в функции инициализации компонентов

Листинг 6. Добавление метода прокрутки колесика мыши.

И последнее что нужно сделать для анимации - добавить таймер, в нем изменять номер слоя и обновлять изображение (листинг 7).

Листинг 7. Таймер анимации

Теперь можно запустить приложение на выполнение и протестовать его работу (рисунок 3).

Рис. 3 Результата работы программы.


Библиографическая ссылка

Маркин Е.Е., Скачков П.П. ВИЗУАЛИЗАЦИЯ РЕЗУЛЬТАТОВ МОДЕЛИРОВАНИЯ ТЕЧЕНИЙ ГАЗОВ И ЖИДКО-СТЕЙ. ЧАСТЬ 1. АНИМАЦИЯ ГРАФИКА ПОВЕРХНОСТИ // Международный студенческий научный вестник. – 2017. – № 5. ;
URL: https://eduherald.ru/ru/article/view?id=17455 (дата обращения: 18.04.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674