Для чего используется компьютерная графика в компьютерном математическом моделировании

Обновлено: 07.07.2024

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

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

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

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

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

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

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

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

2. Развивать логическое мышление, память, внимание.

3. Расширить общеобразовательный кругозор учащихся.

Проверка домашнего задания.

Тест по теме моделирование

Изучение нового материала (лекция).

Информационное моделирование на компьютере

Основное преимущество компьютера перед человеком

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

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

Учитывая, что расчеты производятся над многозначными числами (10-20 десятичных цифр), вычислительные способности человека нельзя даже сравнивать с компьютерными. Эти феноменальные вычислительные возможности проявляются, прежде всего, в компьютерном математическом моделировании .

Для чего нужны математические модели

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

Математическая модель - это описание моделируемого процесса на языке математики.

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

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

Может оказаться так, что для решения сложной задачи численным методом ученому потребуется вся жизнь. А может и этого не хватить! Например, какой смысл начинать расчет прогноза погоды на завтрашний день, если для этого потребуется несколько лет работы?

Компьютерная математическая модель

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

Компьютерная математическая модель - это программа, реализующая расчеты состояния моделируемой системы по ее математической модели.

Расчетное моделирование

Использование компьютерной математической модели для исследования поведения объекта моделирования называется вычислительным экспериментом. Говорят также: "численный эксперимент".

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

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

Графическое моделирование

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

Представление результатов в наглядном виде - важнейшее условие для их лучшего понимания. Например, результаты расчетов распределения температуры в некотором объекте представляются в виде его разноцветного изображения: участки с самой высокой температурой окрашиваются в красный цвет, а с самой холодной - в синий. Участки с промежуточными значениями температуры окрашиваются в цвета спектра, равномерно переходящие от красного к синему.

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

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

Управление на основе моделей

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

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

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

Имитационное моделирование

Имитационное моделирование - особая разновидность моделирования на компьютере.

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

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

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

Еще одним популярным объектом для имитационного моделирования являются транспортные системы: сеть городских дорог, перекрестки, светофоры, автомобили. Модель имитирует движение транспортных потоков по городским улицам. Эксперименты на такой модели позволяют найти режимы управления движением (работа светофоров), уменьшающие возможность возникновения пробок. Работа имитационной модели всегда визуализируется на экране компьютера.

1. Что общего и в чем различие понятий "математическая модель" и "компьютерная математическая модель"?

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

3. В чем состоит особенность компьютерного математического моделирования в процессе управления техническим устройством?

4. Самолет находится на высоте 5000 метров. Обнаружилась неисправность работы двигателя. Самолет начал падать. Бортовой компьютер производит диагностику неисправности и сообщает пилоту о необходимых действиях. Для решения этой задачи ему нужно выполнить 108 вычислительных операций. Быстродействие компьютера - 1 млн оп/сек. Успеет ли летчик спасти самолет, если минимальная высота, на которой самолет можно вывести из пике, - 2000 метров?

5. В каких ситуациях используется имитационное моделирование?

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

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

УДК 004.92 М.А. Прилепко

Омский государственный технический университет, г. Омск

МАТЕМАТИЧЕСКИЕ МОДЕЛИ ПРЕДСТАВЛЕНИЯ КОМПЬЮТЕРНОЙ ГРАФИКИ

Процесс проектирования может рассматриваться как постепенная детализация формы объекта или деталей по мере развития идей разработчика. Программное обеспечение автоматизированного проектирования - это просто одно из средств, облегчающих этот процесс. Типичные программы CAD могут быть разделены на две группы. Системы автоматизированной разработки чертежей помогают проектировщику реализовать свои идеи в двумерном пространстве. Системы геометрического моделирования позволяют работать с формами в трехмерном пространстве. В задачи моей исследовательской работы входит создание системы автоматизированного проектирования виртуальных тренажеров с использованием компьютерной SD-графики, поэтому необходимым является рассмотрение математических основ построения объемных объектов в устройствах ЭВМ.

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

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

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

При отображении геометрических объектов, кроме формы, нужно учитывать их пространственное поведение: перемещение и повороты относительно трех координатных осей (шесть степеней свободы), а также изменение геометрических характеристик во времени -метаморфозы. Перемещения и повороты нужны не только для отображения динамики, с их помощью осуществляется «сборка» сложных объектов из простых составных частей - примитивов. Для получения образов пространственных объектов на плоскости экрана (3D^2D) применяют еще одно геометрическое преобразование - проецирование.

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

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

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

не изменяются, а значит, не изменяются и соответствующие составляющие математическом модели. Зато отношения между объектом и его окружением могут претерпевать значительные изменения: местоположение, ориентация, интенсивность освещения и некоторые другие параметры объекта в сцене способны принимать различные значения.

Перечисленные составляющие математической модели относятся к отображаемым сущностям разного уровня иерархии: сцене, объекту, примитивам. Область пространства, в которой определены функции применяемого в графической системе языка моделирования, может быть названа модельным миром. Будем исходить из того, что в графических системах отображаются не сущности реального мира - физические и технические объекты, а сущности модельного мира, то есть модели реальных сущностей. Другими словами, мир - это совокупность сущностей (объектов), которые представлены своими моделями и изображения которых могут появиться в поле вывода графической системы параллельно или последовательно во времени.

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

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

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

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

Рис. 1. Классификация математических моделей компьютерной графики

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

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

Описание нулевой степени характерно для точек. Набором точек, заданных с достаточной плотностью, можно представить поверхность любой сложности и формы. Набором пространственных элементов (вокселей) представляются и твердотельные объекты. Описанием таких наборов могут служить трехмерные матрицы, элементы которых указывают на принадлежность объекту элементов пространства, поставленных в соответствие элементам матрицы. Такие модели называют рецепторными. Многочлен первой степени в зависимости от числа аргументов описывает в пространстве прямую линию или плоскость. Отрезки прямых линий используются для представления поверхностей объектов в каркасных моделях, участки плоскости - в поверхностных. В твердотельных моделях примитивами могут служить полупространства, ограниченные плоскостями. Использование для описания моделей многочленов более высокой, чем первая, степени дает криволинейные примитивы. В каркасных моделях это кривые линии, в поверхностных - криволинейные поверхности, в твердотельных - участки пространства, ограниченные криволинейными поверхностями. Отображаемые объекты редко состоят из одного примитива, как правило, они являются составными. С другой стороны, объекты могут быть весьма простыми, например, точечные. Ясно, что объекты различной сложности приходится описывать по-разному. Форма описания объектов, принятая в моделях, является еще одним важным признаком их классификации. По этому признаку выделяются табличные, аналитические и кусочно-аналитические модели.

В табличных моделях для описания объектов используют наборы пространственных координат элементов, характерных для этих объектов. Табличное описание может применяться в моделях со всеми перечисленными разновидностями топологических свойств. Аналитические модели описывают объекты с помощью аналитических выражений (уравнений). Применяются они для объектов простой формы, например, ограниченных поверхностями второго порядка. Кусочно-аналитические модели сочетают аналитическую и логическую формы описания действий. Они включают аналитическое описание примитивов и сведения об их связях в объекте. Для описания «стыковки» примитивов в таких моделях применяют, например, операции над множествами, булевские функции, Я-функции [2].

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

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

операций называется конструктивным представлением объемной геометрии (Constructive Solid Geometry - CSG representation). Дерево называется деревом CSG (CSG tree) (Рис. 2).

Дерево CSG обладает следующими преимуществами:

- структура данных проста, а их представление компактно, что облегчает обработку;

- объемное тело, описываемое деревом CSG, всегда является корректным, то есть его внутренний объем однозначно отделен от внешнего. Примером некорректного объемного

тела является тело с лишним ребром. Для него деление объема на внутренний и внешний вблизи вершины, к которой подходит это ребро, оказывается неоднозначным;

- представление CSG всегда может быть преобразовано к соответствующему представлению B-Rep. Это позволяет взаимодействовать с программами, ориентированными на использование B-Rep;

- параметрическое моделирование легко реализуется изменением параметров соответствующих примитивов.

Рис. 2. Пример дерева CSG

Есть у этого дерева и недостатки:

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

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

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

Вторая структура содержит сведения о границах объема (вершинах, ребрах, гранях и их соединении друг с другом) - это представление называется граничным представлением (boundary representation - B-rep), а структура данных - структурой B-rep (B-rep data structure) (рис. 3). Многие структуры B-rep строятся по-разному в зависимости от того, какой элемент считается основным при сохранении сведений о связности.

Рис. 3. Объемное тело в представление В-гер

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

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

Таблицы представления В-Яер Таблица 1

Таблица граней Таблица ребер Таблица вершин

Грань Ребра Ребро Вершины Вершина Координаты

F1 E1, E5, Еб Е1 V1, V2 V1 Х1, У1, Z1

F2 Е2, Еб, Е7 Е2 V2, V3 V2 Х2, У2, Z2

F3 Е3, Е7, Eg Ез V3, V4 V3 Хз, Уз, Z3

F4 Е4, Е8, Е5 Е4 V4, V1 V4 Х4, У4, Z4

F5 Е1, Е2, Е3, Е4 Е5 V1, V5 V5 Х5, У5, Z5

Еб V2, V5 V6 Хб, Уб, Z6

Структура данных B-Rep выглядит очень простой и компактной. Однако она не используется в развитых системах твердотельного моделирования из-за перечисленных ниже недостатков:

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

- грань с внутренними и внешними границами не может быть сохранена в таблице граней, поскольку для нее нужно два списка ребер вместо одного. Такие грани появляются, например, при моделировании объемных тел со сквозными отверстиями. Простым решением этой проблемы является добавление ребра, соединяющего внешнюю и внутреннюю границы. В этом случае два списка вершин могут быть объединены. Соединительное ребро называется мостиком или перемычкой (bridge edge) и попадает в список ребер в двух экземплярах.

- количество ребер у разных граней может быть различно. Более того, невозможно определить заранее количество столбцов (по одному на каждое ребро), которые потребуются для конкретной грани, поскольку это количество столбцов должно сохраняться в виде переменной в момент объявления таблицы граней. Работа с таблицей переменного размера создает некоторые неудобства.

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

Есть две распространенные структуры данных, которые позволяют избежать перечисленных проблем при сохранении граничного представления объемного тела - это структура полуребер (half-edge data structure) и структура крыльевых ребер (winged-edge data structure).

Третья структура представляет объем в виде комбинации элементарных объемов (например, кубов). Можно придумать множество моделей разложения, выбирая разные элементарные объемы, но ни одна из них не может точно описать объемное тело [4].

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

1. Фокс, А. Вычислительная геометрия. Применение в проектировании и на производстве / А. Фокс, М. Пратт ; пер. с англ. - М. : Мир, 1982.

2. Иванов, В. П. Трехмерная компьютерная графика / В. П. Иванов, А. С. Батраков; под ред. Г. М. Полищука. - М. : Радио и связь, 1995.

3. Никулин, Е. А. Компьютерная геометрия и алгоритмы машинной графики /

Е. А. Никулин. - СПб. : БХВ-Петербург, 2003.

4. Кунву, Ли. Основы САПР / Ли Кунву.- СПб. : Питер, 2004.

5. Косников, Ю. Н. Поверхностные модели в системах трехмерной компьютерной графики: учеб. пособие / Ю. Н. Косников. - Пенза : Пензенский государственный университет, 2007.

Общую цель здесь можно сформулировать так: сделать невидимое и абстрактное «видимым». Берем последнее слово в кавычки, так как часто эта «видимость» весьма условна. Можно ли увидеть распределение температуры внутри неоднородно нагретого тела сложной формы без введения в него сотен микродатчиков, т.е., по существу, его разрушения? — да, если есть соответствующая математическая модель, и, что очень важно — договоренность о восприятии определенных условностей на рисунке. Можно ли увидеть распределение металлических руд под землей без раскопок? Строение поверхности чужой планеты по результатам радиолокации? На эти и множество других вопросов ответ — да, можно, с помощью машинной графики и предшествующей ей математической обработки.

Более того, можно «увидеть» и то, что, строго говоря, вообще плохо соответствует слову «видеть». Так, возникшая на стыке химии и физики наука — квантовая химия — дает нам возможность «увидеть» строение молекулы. Эти изображения — верх абстракции и системы условностей, так как в атомном мире обычные наши понятия о частицах (ядрах, электронах и т.д.) принципиально не применимы. Однако, многоцветное «изображение» молекулы на экране компьютера для тех, кто понимает всю меру его условности, приносит большую пользу, чем тысячи чисел, являющихся плодом квантовохимического расчета.

Приведем несколько конкретных примеров, привязанных к нашему курсу.

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

Поскольку основные графические команды языка Turbo Pascal известны, опишем лишь общие моменты построения графиков и траекторий. Пусть численные расчеты уже закончены и нам известны границы значений координат [xmin, xmax] и [ymin, ymax] и есть таблица значений х и у в некоторые моменты времени, разделенные равными промежутками: 0, . Требуется построить графики зависимости и траекторию. Проиллюстрируем это, используя графические процедуры Turbo Pascal.

С помощью директивы Uses Graph и процедуры InitGraph осуществляется переход в графический режим, в котором можно строить изображения. Необычная ориентация «экранной» системы координат создает определенные проблемы при построении графиков и траекторий. Мы хотим выводить их и задавать координаты точек в «естественной» системе координат х, у, изображенной на рис. 1, а графические процедуры (Сiгсlе, Linе, ОutText и др.) воспринимают аргументы в «экранной» системе Сделаем разметку так, как показано на рисунке, и произведем линейное преобразование координат

Если известны разрешающая способность экрана — М точек по оси и N точек по оси , то для нахождения коэффициентов достаточно связать любые две точки в разных системах координат, например

(отступ на 10 позиций от краев экрана позволит создавать подписи, разметку осей и др.). Имеем

Таким образом, перевод одних координат в другие осуществляется по формулам

Рис. 1. Экранная и «естественная» системы координат

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

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

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

Зададим некоторый, совершенно условный, пространственный шаг h между соседними узлами по горизонтали и вспомогательную систему координат, в которой узел (1, 1) имеет координату (0, 0), узел (1, 2) — координату (h, 0), узел (1, 3) — координату (2h, 0) и т.д. Если шаг по вертикали h*, то узел (i, j) в этой системе имеет координату .

Предварительно найдем в таблице наибольшее и наименьшее значения величин aij — допустим, это amin и amax. Пусть b — некоторое промежуточное значение: amin < b < amax. Обсудим в общих чертах, как построить изолинию А = b. Будем для этого (в цикле) просматривать вначале все пары ближайших чисел в первой строке таблицы в поисках такой пары, для которой b находится «внутри». Допустим, число b находится между а1k и a1,k+1, т.е. либо a1k<b< a1,k+1, либо a1k>b> a1,k+1.

Рис. 2. Пространственная сетка и соответствующая ей таблица значений величины А

С помощью линейной интерполяции найдем соответствующую горизонтальную координату точки, в которой А = b:

(координата y определяется номером горизонтальной линии; в данном случае y = 0).

a11 a12 a13 a1m
a21 a22 a23 a2m
¼ ¼ ¼ ¼ ¼
an1 an2 an3 anm

Найденные координаты запомним и просмотрим первую строку в таблице до конца, затем просмотрим вторую строку и т.д. Покончив с просмотром строк, мы получим часть точек, соответствующих изолинии A = b.

После этого займемся просмотром столбцов. Допустим, во втором столбце нашлась пара чисел, для которой число b находится между и . Она дает следующую точку для изолинии. Закончив просмотр всех столбцов, мы получим максимально возможный набор координат точек, принадлежащих данной изолинии. Выведя их на экран в нужном масштабе, получим точечное изображение изолинии A = b, после чего можем, взяв другое значение b, построить следующую изолинию. Более детально эта процедура будет изложена ниже на примере построения линий равного потенциала электрического поля.

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

Приведем примеры. В различных исследованиях температурных полей встает проблема наглядного представления результатов. Самый простой (и самый неудобный для восприятия) способ — привести карту, в некоторых точках которой обозначены значения температур.

Другой способ, описанный выше (набор изотерм) — гораздо нагляднее. Но можно добиться еще большей наглядности, учитывая, что большинству людей свойственно, сравнивая разные цвета, воспринимать красный как «горячий», голубой как «холодный», а все остальные — между ними. Допустим, что на некоторой территории температура в данный момент имеет в разных местах значения от –25°С до + 15°С. Разделим этот диапазон на участки с шагом, равным, например, 5°

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

А что делать, если дисплей монохромный? Или если изображение надо перенести с цветного дисплея на бумагу при отсутствии возможности цветной печати? Тогда роль цвета может сыграть контраст. Сделаем самый «горячий» участок самым темным, самый «холодный» — прозрачным, а остальные — промежуточными.

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

Условные раскраски бывают и гораздо более абстрактными, чем в описанных выше случаях. При моделировании сложных органических молекул компьютер может выдавать результаты в виде многоцветной картины, на которой атомы водорода изображены одним цветом, углерода — другим и т.д., причем атом представлен шариком (кружочком), в пределах которого плотность цвета меняется в соответствии с распределением электронной плотности.

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

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

Program Stergen;Uses Crt_ii, Graph;Type Mas2 = array[0..10,0..4] of Real;Const U : Mas2 =((3.000, 3.667, 4.333, 5.000, 3.000), (3.000, 3.628, 4.128, 3.952, 3.000),(3.000, 3.514, 3.783, 3.593, 3.000), (3.000, 3.377, 3.546, 3.396, 3.000),(3.000, 3.267, 3.381, 3.272, 3.000), (3.000, 3.187, 3.266, 3.188, 3.000),(3.000, 3.131, 3.185, 3.131, 3.000), (3.000, 3.091, 3.129, 3.091, 3.000),(3.000, 3.064, 3.090, 3.064, 3.000), (3.000, 3.044, 3.063, 3.044, 3.000),(3.000, 3.031, 3.044, 3.031, 3.000));Var M,I,J,Nl,Nt: Integer; MaxF,L,T,Hl,Ht: Real;Procedure Initialize; Var GraphDriver, GraphMode : Integer;Begin GraphDriver:=Detect; InitGraph(GraphDriver, GraphMode,'c:\bp\bgi');End;Procedure Postanovka (U : Mas2; Nt, Nl : Integer; Hl, L, MaxF : Real);Var X_N, Shag, Y_N, Shir, Dlin, Color, I, J, K, Y : Integer; Flag : Boolean; Ff : String; Col : Array [0..15] Of Byte;Begin Initialize; X_N:= GetMaxX Div 6; If Nt <= 6 Then M:= Nt Else M:= Nt Div 2; Y_N:= GetMaxY Div M-20; Shir:= Y_N Div 2; Dlin:= GetMaxX-2*(X_N); Shag:= Trunc(Dlin / Nl); Str(Shag, Ff); Col[0]:= 0; Col[1]:= 8; Col[2]:= 1; Col[3]:= 9; Col[4]:= 3; Col[5]:= 11; Col[6]:= 2; Col[7]:= 10; Col[8]:= 14; Col[9]:= 13; Col[10]:= 5; Col[11]:= 12; Col[12]:= 4; For I:= 0 To M-1 Do Begin For J := 0 To Nl-1 Do Begin Flag := False; For K := 0 To Shag Do Begin For y := 0 To Shir Do Begin Color :=1 + Round((U[I, J] + (U[I,J + 1] - U[I,J]) * K/Shag-U[0,0])/3*16); If Random(64) > 32 Then If Random(64) > 32 Then Color:= Color + 1 Else Color := Color - 1; If Not Flag Then Begin Str((U[I, J] + (U[I, J]) * K / Shag) : 5 : 3, Ff); OutTextXY(K+X_N+Shag * J, Y_N * (1+I) - 19, Ff); Flag := True End; PutPixel(K+X_N+Shag * J, Y + Y_N * (1+I), Col[Color]); End; End End End; SetColor(White); SetTextStyle(1,0,2); OutTextXY(150, 420, 'нажмите любую клавишу'); Repeat Until Keypressed; CloseGraph; End; Begin L:= 4; T:= 10; Hl:= 1; Ht := 1; Nl := Trunc(L / Hl); Nt := Trunc(T / Ht); MaxF := 5; Postanovka (U, Nt, Nl, Hl, L, MaxF)End.

Тема 2. Основные этапы построения математических моделей. Типовые прикладные результаты решения задач математического моделирования

Читайте также: