Научная статья на тему 'Применение компьютерной графики для визуализации процессов'

Применение компьютерной графики для визуализации процессов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
292
297
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лепихин Тимур Андреевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Применение компьютерной графики для визуализации процессов»

Лепихин Т.А.

Санкт-Петербургский государственный университет, доцент

LepikhinTA@gmail.com

Применение компьютерной графики для визуализации

процессов

Аннотация

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

Введение

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

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

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

Обзор существующих технологий

Рассмотрим несколько технологических средств, которые успешно могут быть использованы в качестве вспомогательных при проведении учебного процесса и научных исследований.

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

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

Остановимся подробнее на рассмотрении представителей указанных групп графических инструментов.

К первой группе следует отнести программные пакеты MathCad, Maple, Mathematica. Основная задача этих программных средств состоит в

обеспечении исследователя необходимыми графическими компонентами и решениями систем.

Вторая группа содержит в себе в основном различные среды программирования и всевозможные графические пакеты, такие как 3D MAX, Blender, CAD системы, с помощью которых возможно создавать не только 2D и 3D модели, но и анимацию.

В состав третьей группы входят некоторые среды программирования, например Microsoft Visual Studio и пакет прикладных программ MATLAB от компании Mathworks.

Наибольший интерес представляет именно третья группа, поэтому перейдем к более подробному рассмотрению особенностей и методов упомянутого программного обеспечения.

Графическая поддержка исследования с помощью пакета MATLAB-Sim ulink

Пакет прикладных программ MATLAB [1] содержит в себе две среды разработки - собственно сам MATLAB и подсистема имитационного моделирования Simulink.

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

Рассмотрим работу этой части пакета на примере. Предположим, исследователь сформировал функцию и теперь необходимо построить ее график:

_Табл. 1. Пример графической функции пакета MATLAB

Функция Команды MATLAB

2,2 2 X + y = r Окружность t=0:pi/40:2*pi; r=1; x=r*sin(t); y=r*cos(t); plot(x,y); grid on;

Две окружности: 2,2 2 X + y = r 2 2 2 Г X + y =- 16 вращение по орбите t=0:pi/40:2*pi; r=1; n=10; x=r*sin(t); y=r*cos(t); for k=0:pi/n:2*pi plot(x,y); grid on; hold on; axis([-2 2 -2 2]) x1=r/4*sin(t); y1=r/4*cos(t);

xx=x1+r*sin(k);

yy=y1+r*cos(k);

plot(xx, уу);

pause(.1)

hold

End

Рис. 1. Статический рисунок в MATLAB В первом примере строится график окружности. Во втором примере формируются графики двух окружностей, причем здесь присутствует динамика, т.е. одна окружность вращается относительно другой по заданному в программе закону. В примере (на рис. 2) малая окружность движется относительно большей по ее контуру как по орбите.

Рис. 2. Движение малой окружности по орбите

Другая часть пакета, а именно, подсистема Simulink предназначена для имитационного моделирования исследуемых динамических систем и процессов. В состав этой подсистемы входит множество инструментов, один из которых непосредственно предназначен для формирования управляемой анимации в трехмерном виде. Причем основной фактор

удобства использования указанного средства состоит в том, что анимация исследуемого процесса нисколько не помешает исследованиям, а лишь увеличит количество блоков в схеме модели. Этим инструментом является «3D Animation toolbox», подробно рассмотренным в статье [2] (в версиях MATLAB R2008 и ниже инструмент назывался «Virtual Reality toolbox»). В нем с помощью блоков, похожих на схемотехнику можно сформировать динамику любой системы или процесса и создать анимированную модель.

Рис. 3. Результат вращения окружности

Пусть задана математическая модель движения прыгающего мяча. Сформируем компьютерную модель движения мяча с помощью подсистемы Simulink с учетом последующего создания анимации, т.е. подключив инструмент «3D Animation toolbox». Компьютерная модель приведена на рис. 4.

График движения мяча со временем представляет собой следующий процесс, который приведен на рис. 5.

Рис. 5. Форма движения прыгающего мяча Одновременно с графиками движения мяча создается окно с анимацией такого движения. Пример окна с анимацией представлен на рис. 6.

Q VR Bouncing Boll

File View Viewpoints Navigation Rendering Simulation Recording Help

- J r-1 J Ш IШ

CI ¡a »

Рис. 6. Модель движения прыгающего мяча

Графическая поддержка среды Microsoft Visual Studio

Другой подход к формированию графической поддержки исследований предлагает использование среды программирования Microsoft Visual Studio. Здесь доступны различные языки программирования такие, как Visual Basic, C++, C#, Java, F# и другие.

Для формирования графических приложений в подобных средах разработки требуется подключение графических библиотек, таких как Direct3D (DirectX) или OpenGL/AL.

В статье уделим внимание технологии XNA Game Studio Framework [3] на языке C#, которая основана на использовании графической библиотеки DirectX. Указанная технология предназначена в основном для создания игровых приложений для персональных компьютеров, мобильных устройств и игровых приставок. Однако в нашем случае интересны

возможности данной среды формирования анимации и прочей графики.

Рассматриваемое средство достаточно удобно, поскольку изначально имеет графическое предназначение. Структура приложения (табл. 2) состоит из пяти групп, каждая из которых имеет свой набор правил и функциональность.

Табл. 2. Структура XNA приложения

№ Структура приложения Предназначение блоков

1 Public Game1() {graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; W = graphics.PreferredBackBufferWidth = 800; H = graphics.PreferredBackBufferHeight = 700; rect = new Rectangle(0, 0, 140, 140); } Начальная инициализация используемых объектов

2 protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); spaceTexture = Content.Load <Texture2D> ("quad"); } Метод LoadContent загрузки текстур, моделей

3 protected override void Update(GameTime gameTime) { if (k.IsKeyDown(Keys.Escape)) this.Exit(); rect.Offset(dx*gameTime.ElapsedGameTime. Milliseconds / 10, dy*gameTime.Elapsed GameTime .Milliseconds / 10); if (rect.Left < 0) dx = Math.Abs(dx); if (rect.Top < 0) dy = Math.Abs(dy); if (rect.Right > Width) dx = -Math.Abs(dx); if (rect.Bottom > Height) dy = -Math.Abs(dy); base.Update(gameTime); } Метод Update обработки нажатия клавиш и ограничения на движение

4 protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Cornsilk); spriteBatch.Begin(); spriteBatch.Draw(spaceTexture, rect, Color.White); spriteBatch.End(); base.Draw(gameTime); } Метод Draw отрисовки объектов

Приведенная в таблице 2 структура кода программы осуществляет отрисовку квадратного объекта (рис. 7) и осуществляет его перемещение в

пространстве, но не позволяет выходить за границы допустимой области.

V WindowsGamel — ■ - - I " I ' itB&J'

у

Рис. 7. Движение квадрата ударяющегося о границы области Однако кроме создания анимации в XNA Framework можно создавать массивы данных или импортировать информацию из баз данных. Поэтому можно сказать, что указанная технология позволяет визуализировать данные. Например, можно из какой-либо базы данных сохранить данные, записать их в виде структуры, например, дерева данных и затем визуализировать с помощью предлагаемой среды. Пример такого приложения приведен на рис. 8.

Рис. 8. Графическое представление данных

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

Тем временем в среде разработки Visual Studio и ее графической подсистеме XNA Game Studio Framework возможность управления анимацией присутствует изначально, что является неоспоримым достоинством этой системы. Кроме того, получаемая анимация является отдельным самостоятельным приложением. Тем не менее, есть в системе и недостатки, в частности, это касается необходимости описания самих

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

Заключение

Все рассмотренные средства графической поддержки могут быть успешно применены в различных ситуациях. Если нужно построить статические или динамические графики, то следует воспользоваться средствами системы MATLAB. Если необходимо посмотреть как будет вести себя динамическая система, описанная конкретной математической моделью, то можно прибегнуть к помощи подсистемы имитационного моделирования Simulink с ее графическим инструментом «3D Animation toolbox». В случае, если требуется создать самостоятельное графическое приложение с возможностью управления с клавиатуры, мышью или другим устройством ввода, тогда следует обратить внимание на среду разработки Microsoft Visual Studio вместе с XNA Game Studio Framework.

Литература

1. Веремей Е.И. Система MATLAB в учебном процессе для специалистов по теории управления и информационным технологиям. //Тр. Первой международной научно-практической конференции «Современные информационные технологии и ИТ-образование». - М.:МАКС Пресс, 2005. - С. 516-523.

2. Лепихин Т.А. 3D-анимация на базе пакета Virtual Reality Toolbox. Труды V Международной научной конференции «Проектирование инженерных и научных приложений в среде MATLAB», Украина, Харьков, 2011. С. 397-403.

3. Kurt Jaegers XNA 4.0 Game Development by Example Beginner's Guide. Packt Publishing Ltd. ISBN: 978-1-84969-066-9, 2010, p. 428.

i Надоели баннеры? Вы всегда можете отключить рекламу.