Объектно-ориентированный язык моделирования UML. Объектно-ориентированное моделирование

ArCon. Дизайн интерьеров и архитектурное моделирование для всех Кидрук Максим Иванович

Объектно-ориентированное моделирование

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

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

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

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

Применение объектного подхода дает множество преимуществ.

На порядок возрастает скорость создания планов и чертежей.

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

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

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

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

Рис. 1.1. Пример иерархического представления строительного плана, созданного на основе объектного подхода

Примечание

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

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

Примечание

На это свойство следует обратить больше внимания, поскольку генерация трехмерной модели по чертежам давно является камнем преткновения для всех разработчиков инженерных графических систем. В действительности на практике реализован прямо противоположный принцип – генерация чертежа (по существу – проекции 3D-модели) по готовой модели. Попытка реализовать обратное действие (переход из двухмерного изображения в 3D) имела место в некоторых известных CAD-системах (в частности, в SolidWorks), однако успешной ее назвать сложно. На двухмерное изображение налагаются слишком жесткие ограничения, что не позволяет применять заявленный функционал повсеместно. Объектный подход предоставляет возможность получения завершенной трехмерной модели, конечно, с учетом специфики конкретных объектов.

Несмотря на большое количество преимуществ, перечисленных выше, объектно-ориентированный подход имеет и недостатки.

В первую очередь (и это очевидно) это ограниченность набора готовых объектов, а также невозможность произвольного их изменения. Это отбирает гибкость у программы, из чего следует, что принцип объектного проектирования может быть применен только в специализированных системах (таких, к примеру, как ArCon, Professional Home Design Platinum и пр.). Разработчикам таких систем необходимо основательно учитывать специфику отрасли, для автоматизации и решения задач которой предназначается программный продукт, а также максимально расширять возможность настройки свойств предлагаемых объектов.

Здесь на первый план выходит вопрос стоимости и функционала системы. Если вы на 100 % уверены в том, что та или иная специализированная программа подходит для ваших целей, сомнений при ее покупке не должно возникать. В противном случае вам необходимо более подробно изучить функционал, чтобы убедиться, можно ли будет решать поставленные задачи или же, в худшем случае, придется потратить деньги на «обычный» и дорогой CAD-редактор.

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

Примечание

Забегая наперед, скажу, что проекты ArCon+ 2005 можно экспортировать в различные как двухмерные, так и трехмерные форматы, используя группу команд Файл? Экспортировать в формате (рис. 1.2). Важно отметить, что в программе поддерживаются такие известные форматы обмена данных, как VRML, DXF, формат системы 3ds Max, а также возможность сохранения проекта в выполнимый EXE-файл (подробнее об этом написано далее).

Рис. 1.2. Поддерживаемые форматы для экспорта проектов из ArCon

Еще хуже дело обстоит с импортом данных из других систем. Если они не приведены к определенному формату, «взять» их внутрь объектной специализированной системы невозможно. Скажем, при импорте чертежа из AutoCAD в ArCon может быть загружено лишь изображение. При этом ArCon никак самостоятельно не сможет распознать, где в открытом изображении окна, двери, стены и т. п., и тем более присвоить отдельным объектам вполне разумные свойства. Это значит, что дальнейшее редактирование чертежа в ArCon, как и «поднятие» его в 3D, невозможно. Импортирование, по существу, становится бессмысленным, поэтому преимущественное большинство объектно-ориентированных проектных систем не имеют функций для чтения графических данных извне.

Однако, несмотря на такие существенные недостатки, легкость в работе, а главное – скорость и наглядность выполнения проектов берут верх. Как следствие, в последнее время системы, подобные рассматриваемой в этой книге программе ArCon, нашли широкое применение при решении различных задач проектирования.

Из книги Питон - модули, пакеты, классы, экземпляры. автора Бройтман Олег

Объектно-ориентированное программирование Питон - объектно-ориентированный язык со множественным наследованием. Можно сказать, что Питон поддерживает классическую ОО-модель с некоторыми особенностями. Классы в Python могут иметь статические переменные, разделяемые

Из книги 3ds Max 2008 автора Верстак Владимир Антонович

Объектно-ориентированное моделирование 3ds Max 2008 – объектно-ориентированная программа, то есть все, что создается в программе, является объектами. Геометрия, камеры и источники света на сцене – это объекты. Объектами также являются модификаторы, контроллеры, растровые

Из книги Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ автора Мейерс Скотт

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

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Объектно-ориентированное конструирование ПО У нас уже накоплено достаточно оснований, чтобы попытаться определить ОО-конструирование ПО. Это будет лишь первый набросок, более конкретное определение последует в следующей лекции.ОО-конструирование ПО (определение 1)

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

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

Из книги VBA для чайников автора Каммингс Стив

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

Из книги Программирование для карманных компьютеров автора Волков Владимир Борисович

Из книги Основы программирования на Java автора Сухов С. А.

11.1. Рутинные объектно-ориентированные задачи Of his quick objects hath the mind no part, Nor his own vision holds what it doth catch… Вильям Шекспир. Сонет 113 Если вы вообще не знакомы с ООП, то эта глава вас ничему не научит. А если вы понимаете, что такое ООП в языке Ruby, то, наверное, ее и читать не стоит.

Из книги C++ для начинающих автора Липпман Стенли

Объектно-ориентированное программирование и VBA В результате своей эволюции Visual Basic превратился в (почти) объектно-ориентированный язык программирования. Хотя освоение приемов работы с объектами и представляет некоторую трудность в начале знакомства с VBA, ожидаемая

Из книги автора

Глава 12. Объектно-ориентированное программирование. В этой главе...~ Концептуализация объектов~ Понимание свойств, методов и событий - главных компонентов VBA-объектов~ Работа с объектными моделями~ Использование форм как объектов~ Выяснение и установка свойств объектов~

Из книги автора

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

Из книги автора

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ НА JAVA 7. КЛАССЫ Базовым элементом объектно-ориентированного программирования в языке Java является класс. В этой главе Вы научитесь создавать и расширять свои собственные классы, работать с экземплярами этих классов. Напомним,

Из книги автора

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

Из книги автора

Процедурно-ориентированное программирование В части II были представлены базовые компоненты языка С++: встроенные типы данных (int и double), типы классов (string и vector) и операции, которые можно совершать над данными. В части III мы увидим, как из этих компонентов строятся

Из книги автора

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

Из книги автора

17.1.1. Объектно-ориентированное проектирование Из чего складывается объектно-ориентированное проектирование четырех рассмотренных выше видов запросов? Как решаются проблемы их внутреннего представления?С помощью наследования можно определить взаимосвязи между

Языки объектно-ориентированного моделирования стали появляться между серединой 1970-х и концом 1980-х годов, когда началась разработка подходов к объектно-ориентированному анализу и проектированию (ООАП) систем. К середине 1990-х годов некоторые из методов были существенно улучшены. Известными в этот период становятся: метод Гради Буча (Grady Booch - Воосh"93); метод Джеймса Румбаха (James Rumbaugh - Object Modeling Technique); метод Айвара Джекобсона (IvarJacobson- Object Orienter Software Engineering).

История языка UML (Unified Modeling Language) берет начало с октября 1994 года, когда Буч и Румбах из Rational Software Согрогаtion начали работу по |унификации своих методов. Проект так называемого унифицированного метода версии 0.8 был подготовлен и опубликован в ноябре 1995 года. Осенью того же года к ним присоединился Джекобсон, главный технолог из компании ObjectoryАВ (Швеция), с целью интеграции своего метода ООSЕ с двумя предыдущими.

В этот период поддержка разработки языка UML становится одной из целей консорциума OMG (Object Management Group) – образован в 1989 году. Язык UML приобретает статус второго стратегического направления в работе OMG. Усилия Г. Буча, Дж. Румбаха и А. Джекобсона привели к появлению документов, содержащих описание собственно языка UML версии 0.9 (1996 г.)

Rational Software Согрогаtion вместе с несколькими организациями, изъявили желание выделить ресурсы для разработки строгого определения языка UML, учредила консорциум партнеров UML В январе 1997 года опубликован документ с описанием языка UML 1.0.

Из более чем 800 компаний и организаций, входящих в настоящее время в состав консорциума OMG, особую роль продолжает играть Rational Software Согрогаtion, которая стояла у истоков разработки языка UML. Эта компания разработала и выпустила в продажу одно из первых инструментальных СА8Е-средств Rational! Rose 98, в котором была реализована нотация различных диаграмм языка UML. В феврале 2003 г. компания Rational Software Согрогаtion была приобретена IBM, и с этого момента она имеет официальное название IBM Rational Software.

В настоящее время все вопросы дальнейшей разработки языка UML скон­центрированы в рамках консорциума OMG. Соответствующая группа специалистов обеспечивает публикацию материалов, содержащих описание последующих версий языка UML. Очередной этап развития данного языка закончился в марте 1999 года, когда консорциумом OMG было опубликовано описание языка UML 1.3. Следующей версией языка UML стала версия 1.5, специфицированная в марте 2003 г. В 2004 г. вышла версия UML 2.0.

На основе технологии UML компании Microsoft, Rational Software и другие поставщики средств разработки программных систем разработали единую информационную модель, которая получила название UML Information Model. Предполагается, что эта модель даст возможность различным программам, поддерживающим идеологию UML, обмениваться между собой компонентами и описаниями.

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

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

    диаграмма вариантов использования (use case diagram)

    диаграмма классов (class diagram)

    диаграммы поведения (behaviorг diagrams)

    диаграммы взаимодействия (interaction diagrams)

    диаграмма кооперации (collaboration diagram)

    диаграмма последовательности (sequence diagram)

    диаграмма состояний (statechart diagram)

    диаграмма деятельности (activity diagram)

    диаграммы реализации (implementation diagrams)

    диаграмма компонентов (component diagram)

    диаграмма развертывания (deployment diagram)

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

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

    Диаграмма классов – статическая структура модели системы в терминологии классов ООП

    Диаграмма кооперации – структурный аспект взаимодействия объектов системы через передачу и прием сообщений

    Диаграмма последовательности – временной аспект взаимодействия объектов системы

    Диаграмма состояний – описание поведения системы в терминах переходов и состояний

    Диаграмма деятельности – моделирование процесса выполнения операций (частный случай диаграммы состояний)

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

    Диаграмма развертывания – представление общей конфигурации и топологии распределенной системы (вторая из двух диаграмм реализации)

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

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

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

7. Геометрическое моделирование. Виды систем моделирования. Внутреннее представление моделей.

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

Можно выделить 2 задачи:

1.Построение геометрической модели уже существующего тела.

2.Синтез геометрической модели нового объекта.

При решении 1-ой задачи требуется задание большого количества точек, принадлежащих поверхности объекта. При решении 2-ой задачи геометрическое моделирования, выполняемого в интерактивном режиме основное требование к средствам формирования и представления геометрической модели – удобство манипулирования моделью. Выделяют 3 вида геометрических моделей: каркасные, поверхностные, твёрдотельные.

Каркасная модель представляет собой мн-во вершин и мн-во рёбер, объединяющих данные вершины.

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

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

Недостаток: пов-сти не имеют толщины, а реальные объекты представляют собой некий замкнутый объём.

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

Твёрдотельная модель строится из базовых элементов с использованием соответствующих операций: булевы операции, выталкивание, вращение, лофтинг, разделение твёрдых тел. САПР допускает следующие доп. операции:

построение скруглений, построение отверстий на гранях, построение рёбер жёсткости, построение фасок.

Твёрдотельная модель хранится в САПР в виде дерева построения.

Преимущество твёрдотельного моделирования:

1.Простота параметризации.

2.Возможность расчёта масс-инерционных хар-к и разбивка на сетку конечных элементов.

3.Относительная простота моделирования.

Недостаток: ограниченность конструктивных форм создаваемых моделей.

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

1 стр-ра представляет собой дерево , опис-щее историю прим-я булевских операций к примитивам. Журнал операций называется конструктивным пред­ставлением объемной геометрии (Constructive Solid Geometry CSG representation ). Дерево называется деревом CSG (GSG tree ).

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

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

Моделирование - один из основных методов познания, который очается в выделении из сложного явления (объекта) некоторых чаcтей и нении их другими объектами, более понятными и удобными для ания, объяснения и разработки.

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

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

Геометрическое моделирование раздел математического

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

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

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

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

Этапы геометрического моделирования:

Постановка геометрической задачи, соответствующая исходной прикладной задаче или ее части:

Разработка геометрического алгоритма решения поставленной задачи;

Реализация алгоритма при помощи инструментальных средств:

Анализ и интерпретация полученных результатов. Методы геометрического моделирования:

Аналитический:

Графический;

Графический, с использованием средств машинной графики:

Графоаналитические методы.

Графоаналитические методы основываются на разделах вычислительно!! геометрии, таких как теория R-функций. теория поверхностей Кунса. теория кривых Безье, теория сплайнов и др.

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

8. Графические языки высокого уровня.

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

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

    автоматизация программирования для оборудования с ЧПУ;

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

    системы геометрического моделирования.

Одним из первых проблемно-ориентированных языков, имеющих средства для описания геометрической информации, явился язык АРТ (AUTOMATED PROGRAMMING TOOLS). Этот язык послужил основой для разработки разнообразных систем автоматизации программирования для станков с ЧПУ.

В качестве примеров систем с автономным языком высокого уровня могут также служить системы геометрического моделирования трехмерных тел – COMPAC и СИМАК-Д.

Система COMPAC (COMPUTER ORIENTED PART CODING) предназначена для формирования описания объемных тел из объемных элементов формы – (метод конструктивной геометрии). Кроме трех базовых объемных элементов (кубы, цилиндры, конусы), могут использоваться профилированные детали, получаемые перемещением замкнутого контура вдоль прямой или дуги, а также тела вращения, получаемые вращением замкнутого контура вокруг оси. Элементы задаются, позиционируются и оразмериваются языковыми конструкциями, напоминающими АРТ. Составление детали из объемных элементов производится с помощью операций объединения, вычитания и отсечения.

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

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

    довольно значительные затраты на создание языка и транслятора с него;

    затраты на внедрение, на включение языка в работающую систему программирования и на обучение пользователей, которые не всегда охотно берутся за изучение еще одного языка, а предпочитают пользоваться процедурными расширениями известных им алгоритмических языков: ALGOL, FORTRAN, PL-1, PASCAL и т.д.;

    трудности с последующим расширением языка;

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

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

9. Объектно-ориентированное моделирование.

Объектно-ориентированное моделирование (feature - based modeling ) позволяет конструктору создавать объемные тела, используя привычные элементы форм (features ). Созданное тело несет в себе информацию об этих элементах в допол­нение к информации об обычных геометрических элементах (вершинах, ребрах, гранях и др.). Например, конструктор может давать команды типа «сделать от­верстие такого-то размера в таком-то месте» или «сделать фаску такого-то раз­мера в таком-то месте», и получившаяся фигура будет содержать сведения о на­личии в конкретном месте отверстия (или фаски) конкретного размера. Набор доступных в конкретной программе элементов формы зависит от спектра приме­нения этой программы.

Большинством систем объектно-ориентированного моделирования поддержива­ются такие элементы, которые используются при изготовлении деталей: фаски, отверстия, скругления, пазы, выемки и т. д. Такие элементы называются произ­водственными , поскольку каждый из них может быть получен в результате кон­кретного процесса производства. Например, отверстие создается сверлением, а выемка – фрезерованием. Следовательно, на основании сведений о наличии, размере и расположении производственных элементов можно попытаться авто­матически сформировать план технологического процесса. Автоматическое пла­нирование технологического процесса, если оно будет разработано на практиче­ском уровне, перебросит мост между CAD и САМ, которые в настоящий момент существуют отдельно друг от друга. Таким образом, в настоящий момент лучше моделировать объекты, подобные изображенному на рис. 5.20, с использованием команд объектно-ориентированного моделирования «Выемка» и «Отверстие», а не просто булевских операций. Модель, созданная при помощи таких команд, облегчит планирование технологического процесса, если не сделает его полно­стью автоматическим. Использование производственных элементов в моделиро­вании иллюстрирует рис. 5.21.

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

Дисциплина «Лингвистическое и программное обеспечение САПР» (Беспалов В.А.)

    Понятие автоматизации проектирования и его лингвистического обеспечения

    Базовое и управляющее лингвистическое обеспечение.

    Организация диалога в САПР, средства обеспечения диалогового режима.

    Принципы организации трансляторов.

    Обобщенная структура компилятора.

    Синтаксический анализатор.

    Языки проектирования и программирования.

    Основы теории языков и формальных грамматик.

    Способы записи синтаксиса языка. Организация лексического анализа.

    Принципы работы лексических и синтаксических анализаторов.

    Понятие автоматизации проектирования и его лингвистического обеспечения.

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

ЛО САПР – совокупность языков, терминов, определений, необходимых для выполнения автоматизированного проект-я. ЛО имеет место наряду с: техническим, математическим, информационным, программным, методическим и организационным обеспечением САПР. Основу ЛО САПР составляют спец. языковые средства (языки проектирования), предназначенных для описания процедур автоматизир. пр-я и проектных решений. Обычно они наз-ся проблемно-ориентированными языками (ПОЯ). 2 вида построения ПОЯ:

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

2. ПОЯ соединяет в себе средства алгоритмического языка со специальными языковыми средствами моделирования геометрических объектов.

ПОЯ представляет из себя комплексы лингвистических и программных средств, кот. должны включать след. элементы:

    набор терминальных символов ПОЯ

    интерпретатор ПОЯ

    средства синтаксического анализа

    средства пакетирования директив

    библиотеки базовых функций ПОЯ

интерфейс для связи с СУБД

Интерпритатор- программа или устройство, осуществляющее пооператорную трансляцию и выполнение исходной программы.

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

    Базовое и управляющее лингвистическое обеспечение.

Лингвистическое обеспечение хорошо развитых САПР можно разделить на две относительно обособленные части – базовую и управляющую , связь между которыми осуществляется при помощи специализированных языковых процессоров-компиляторов, интерпретаторов и т. п.

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

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

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

... » Рассматриваются вопросы построения подсистемы САПР метеорологической поддержки (МП... практических занятий по дисциплине «концепции современного... интеллектуального анализа данных. Интеллектуальный анализ, параллельные алгоритмы, интеллектуальный ...

  • Курс лекций по дисциплине «Теория информационных процессов и систем» для студентов ВлГУ, обучающихся по направлению 230400. 62 Информационные системы и технологии

    Документ

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

  • Аннотация к рабочей программе дисциплины «Математическая логика и теория алгоритмов» по направлению 230100. 62 Информатика и вычислительная техника

    Документ

    Файлов. 11. Программы САПР , их графические возможности. ... программных средств интеллектуальных систем. Краткое содержание дисциплины . Искусственный интеллект... . Функциональные подсистемы АСОИУ: структура функциональной подсистемы , функциональные...

  • Учебное пособие по дисциплине 1722 «Проектирование асоиу» по специальности 230102 Автоматизированные системы обработки информации и управления Факультет ит

    Анализ

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

  • · Процедурные языки , которые представляют собой последовательность выполняемых операторов. Если рассматривать состояние ПК как состояние ячеек памяти, то процедурный язык – это последовательность операторов, изменяющих значение одной или нескольких ячеек. К процедурным языкам относятся FORTRAN, C, Ada, Pascal, Smalltalk и некоторые другие. Процедурные языки иногда также называются императивными языками. Код программы на процедурном языке может быть записан следующим образом:

    оperator1; operator2; operator3;

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

    · function1(function2(

    · function3(beginning_date)));

    · Языки системы правил , называемые также языками логического программирования, основываются на определении набора правил, при выполнении которых возможно выполнение определенных действий. Правила могут задаваться в виде утверждений и в виде таблиц решений. К языкам логического программирования относится язык Prolog.

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

    if condition1 then operator1;

    if condition2 then operator2;

    if condition3 then operator3;

    · Объектно-ориентированные языки , основанные на построении объектов как набора данных и операций над ними. Объектно-ориентированные языки объединяют и расширяют возможности, присущие процедурным и аппликативным языкам. К объектно-ориентированным языкам относятся C++, Object Pascal, Java.

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

    ППО - это комплекс прикладных программ, с помощью которых выполняются конкретные задания: производственные, творческие, развлекательные и т. д.

    Классификация ПП средств

    Текстовые редакторы - основные их функции - ввод и редактирование текстовых данных.

    Графические редакторы - обширный класс программ, предназначенных для создания и обработки графических изображений.

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

    Модель натурная, если она есть материальная копия оригинала.

    Модель геометрическая, если она представима геометрическими образами и отношениями между ними.

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

    Есть и другие типы моделей.

    Примеры моделей

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

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

    Тип модели зависит от связей и отношений его подсистем и элементов, окружения, а не от его физической природы.

    Основные свойства любой модели:

    · целенаправленность;

    · конечность;

    · упрощенность;

    · приблизительность;

    · адекватность;

    · информативность;

    · полнота;

    · замкнутость и др.

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

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

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

    Компьютерное моделирование от начала и до завершения проходит следующие этапы.

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

    2. Предмодельный анализ.

    3. Анализ задачи.

    4. Исследование модели.

    5. Программирование, проектирование программы.

    6. Тестирование и отладка.

    7. Оценка моделирования.

    8. Документирование.

    9. Сопровождение.

    10. Использование (применение) модели.

    При моделировании систем ПО выделяют два подхода: структурное моделирование и объектно-ориентированное моделирование. Каждый из этих подходов использует свои методы и средства. Язык моделирования должен включать: элементы модели , т. е. функциональные концепции моделирования и их семантику, нотацию , т. е. визуальное представление элементов моделирования и руководство по использованию . При моделировании широко используются инструментальные средства, называемые Case -средствами. Case -средство – это технология использования и эксплуатации систем ПО. Case -средство – это программное средство, которое поддерживает процессы жизненного цикла ПО . ЖЦ любого ПО – это период времени от принятия решения о необходимости создания ПО до изъятия ПО из эксплуатации. Все процессы ЖЦ ПО делятся на три группы: основные (5), вспомогательные (8), организационные (4). Для разработки моделей ЖЦ используется стандарт (ISO/IEC 12207). Стадия создания ПО – это часть процесса создания ПО, ограниченная временными рамками и заканчивающаяся выпуском конкретного продукта (модели, программы или документации). В состав ЖЦ ПО включают стадии :

    1. Формирование требований к ПО

    2. Проектирование

    3. Реализация

    4. Тестирование

    5. Ввод в действие

    6. Эксплуатация и сопровождение

    7. Снятие с эксплуатации.

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

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

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

    ERD – диаграммы сущность – связь . Это самое распространенное средство моделирования данных, которые в процессе проектирования и реализации будут отображены в базу данных. Базовыми понятиями данного средства моделирования являются: сущность, связь и атрибут .

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

    Абстракция – это процесс выявления основных характеристик какой-либо сущности, которые отличают ее от других сущностей.

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

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

    Иерархия – это ранжирование или упорядочивание системы абстракций. Виды иерархических структур – это структура классов и структура объектов.

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

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

    Устойчивость – свойство объекта существовать во времени и/или пространстве.

    Основные понятия , используемые при объектно-ориентированном моделировании: объект и класс .

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

    Языки моделирования

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

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

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

    Объектно-ориентированное программирование

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

    Основные концепции ООП

    (основные идеи объектно-ориентированного проектирования и объектно-ориентированного программирования одинаковы, т. к. разработанный проект реализуется на одном из объектно-ориентированных языков программирования)

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

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

    ООП характеризуется следующими принципами (по Алану Кею):

    · все является объектом;

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

    · каждый объект имеет независимую память , которая состоит из других объектов;

    · каждый объект является представителем класса, который выражает общие свойства объектов данного типа;

    · в классе задается функциональность (поведение объекта); тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия;

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

    Абстрагирование (abstraction) - метод решения задачи, при котором объекты разного рода объединяются общим понятием (концепцией), а затем сгруппированные сущности рассматриваются как элементы единой категории.

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

    Инкапсуляция (encapsulation) - техника, при которой несущественная с точки зрения интерфейса объекта информация прячется внутри него.

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

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

    Полиморфизм (polymorphism) - свойство, позволяющее использовать один и тот же интерфейс для различных действий; полиморфной переменной, например, может соответствовать несколько различных методов.

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

    Класс (class) - множество объектов, связанных общностью структуры и поведения; абстрактное описание данных и поведения (методов) для совокупности похожих объектов, представители которой называются экземплярами класса.

    Объект (object) - конкретная реализация класса, обладающая характеристиками состояния, поведения и индивидуальности, синоним экземпляра.

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

    Основы представления графических данных

    Виды компьютерной графики

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

    В зависимости от способа формирования изображений компьютерную 2D-графику принято подразделять на растровую, векторную и фрактальную .

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

    Особенности цветового охвата характеризуют такие понятия, как черно-белая и цветная графика . На специализацию в отдельных областях указывают названия некоторых разделов: инженерная гра­фика, научная графика, Web-графика, компью­терная полиграфия и прочие.

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

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

    Растровая графика

    Векторная графика

    Трехмерная графика

    Инженерная графика

    Растровая графика

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

    Разрешение оригинала;

    Разрешение экранного изображения;

    Разрешение печатного изображения.

    Разрешение оригинала. Разрешение оригинала измеряется в точках на дюйм (dots per inch - dpi ) и зависит от требований к качеству изображения и размеру файла, способу оцифровки или методу создания исходной иллюстрации, избранному формату файла и другим параметрам. В общем случае действует правило: чем выше требования к качеству, тем выше должно быть разрешение оригинала.

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

    Мониторы для обработки изображений с диагональю 20-21 дюйм (профессионального класса), как правило, обеспечивают стандартные экранные разрешения 640x480, 800x600, 1024x768, 1280x1024, 1600x1200, 1600x1280, 1920x1200, 1920x1600 точек. Расстояние между соседними точками люминофора у качественного монитора состав­ляет 0,22-0,25 мм.

    Для экранной копии достаточно разрешения 72 dpi, для распечатки на цветном или лазерном принтере 150-200 dpi, для вывода на фотоэкспонирующем устройстве 200-300 dpi. Установлено эмпирическое правило, что при распечатке величина разрешения оригинала должна быть в 1,5 раза больше, чем линиатура растра устрой­ства вывода. В случае, если твердая копия будет увеличена по сравнению с ориги­налом, эти величины следует умножить на коэффициент масштабирования.

    Разрешение печатного изображения и понятие линиатуры. Размер точки растро­вого изображения как на твердой копии (бумага, пленка и т. д.), так и на экране зависит от примененного метода и параметров растрирования оригинала. При растри­ровании на оригинал как бы накладывается сетка линий, ячейки которой образуют элемент растра . Частота сетки растра измеряется числом линий на дюйм (lines per inch - Ipi ) и называется линиатурой .

    Размер точки растра рассчитывается для каждого элемента и зависит от интенсив­ности тона в данной ячейке. Чем больше интенсивность, тем плотнее заполняется элемент растра. То есть, если в ячейку попал абсолютно черный цвет, размер точки растра совпадет с размером элемента растра. В этом случае говорят о 100% заполняемости. Для абсолютно белого цвета значение заполняемости составит 0%. На практике заполняемость элемента на отпечатке обычно составляет от 3 до 98%. При этом все точки растра имеют одинаковую оптическую плотность, в идеале при­ближающуюся к абсолютно черному цвету. Иллюзия более темного тона создается за счет увеличения размеров точек и, как следствие, сокращения пробельного поля между ними при одинаковом расстоянии между центрами элементов растра (рис. 1). Такой метод называют растрированием с амплитудной модуляцией (AM).

    Полиграфическое оборудование" href="/text/category/poligraficheskoe_oborudovanie/" rel="bookmark">полиграфического оборудования ; он применяется в основном для художествен­ных работ, при печати с числом красок, превышающим четыре.

    Рис.2. Пример использования стохастического растра

    Связь между параметрами изображения и размером файла. Средствами растровой графики принято иллюстрировать работы, требующие высокой точности в пере­даче цветов и полутонов. Однако размеры файлов растровых иллюстраций стре­мительно растут с увеличением разрешения. Фотоснимок, предназначенный для домашнего просмотра (стандартный размер 10x15 см, оцифрованный с разрешени­ем 200-300 dpi, цветовое разрешение 24 бита), занимает в формате TIFF с вклю­ченным режимом сжатия около 4 Мбайт. Оцифрованный с высоким разрешением слайд занимает 45-50 Мбайт. Цветоделенное цветное изображение формата А4 занимает 120-150 Мбайт.

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

    Рис.3. Эффект пикселезации при масштабировании растрового изображения

    Векторная графика

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

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

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

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

    Рис. 4. Объекты векторной графики

    Математические основы векторной графики

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

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

    Прямая линия. Ей соответствует уравнение у = kx + b. Указав параметры k и b, всегда можно отобразить бесконечную прямую линию в известной системе коор­динат, то есть для задания прямой достаточно двух параметров.

    Отрезок прямой. Он отличается тем, что требует для описания еще двух парамет­ров - например, координат x1 и х2 начала и конца отрезка.

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

    x2+a1y2+a2xy+a3x+a4y+а5 = 0.

    Таким образом, для описания бесконечной кривой второго порядка достаточно пятя; параметров. Если требуется построить отрезок кривой, понадобятся еще два параметра.

    Кривая третьего порядка. Отличие этих кривых от кривых второго порядка состоит в возможном наличии точки перегиба. Например график функции у = x3 имеет точ­ку перегиба в начале координат (рис. 15.5). Именно эта особенность позволяет сде­лать кривые третьего порядка основой отображения природных объектов в век­торной графике. Например линии изгиба человеческого тела весьма близки к кривым третьего порядка. Все кривые второго порядка, как и прямые, являются частными случаями кривых третьего порядка.

    В общем случае уравнение кривой третьего порядка можно записать так:

    x3 + а1у3 + а2x2у + a3xy2 + a4x2 + а5y2 + а6xy + a7x + а8y + а9 = 0

    Таким образом, кривая третьего порядка описывается девятью параметрами. Опи­сание ее отрезка потребует на два параметра больше.

    Рис.5. Кривая третьего порядка (слева) и кривая Безье (справа)

    Кривые Безье. Это особый, упрощенный вид кривых третьего порядка (с. рис. 5). Метод построения кривой Безье (Bezier ) основан на использовании пары касатель­ных, проведенных к отрезку линии в ее окончаниях. Отрезки кривых Безье описы­ваются восемью параметрами, поэтому работать с ними удобнее. На форму линии влияет угол наклона касательной и длина ее отрезка. Таким образом, касательные играют роль виртуальных «рычагов», с помощью которых управляют кривой.

    Отрезками кривых Безье можно аппроксимировать сколь угодно сложный контур. Наряду с линией другим основным элементом векторной графики является узел (опорная точка). Линии и узлы используются для построения контуров. Каждый контур имеет несколько узлов. Форма контуров в векторных редакторов изменяется путем манипуляции узлами. Это можно сделать одним из следующих способов: перемещением узлов, изменением свойств узлов, добавлением или удалением узлов. В основе всех процедур связанных с редактированием контуров лежит работа с узлами. При выделении узловой точки криволинейного сегмента у нее появляются одна или две управляющие точки, соединенные с узловой точкой касательными линиями. Управляющие точки изображаются черными закрашенными точками. Расположение касательных линий и управляющих точек определяет длину и форму криволинейного сегмента, а их перемещение приводит к изменению формы контура.

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

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

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

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

    Если принять объектно-ориентированный взгляд на мир, необходимо отве­тить на ряд вопросов. Какая структура должна быть у хорошей объ­ектно-ориентированной архитектуры? Какие артефакты должны быть созданы в процессе работы над проектом? Кто должен создавать их? И, наконец, как оценить результат?

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

    Объектно-ориентированные языки моделирования появились в период с сере­дины 70-х до конца 80-х годов, когда исследователи, поставленные перед необхо­димостью учитывать новые возможности объектно-ориентированных языков программирования и требования, предъявляемые все более сложными приложени­ями, вынуждены были начать разработку различных альтернативных подходов к анализу и проектированию.

    Технология разработки программных систем, в основу которых положена парадигма представления окружающего мира в виде объектов, являющихся экземплярами соответствующих классов, получила название - объектно-ориентированный анализ и проектирование (ООАП) - OOA&D (Object-Oriented Analysis/Design). В рамках этой технологии язык UML является средством графического представления результатов моделирования не только программного обеспечения, но и более широких классов систем и бизнес-приложений, с использованием объектно-ориентированных понятий. При этом явным образом обеспечивается взаимосвязь между базовыми понятиями для моделей концептуального и физического уровня, достигается масштабируемость моделей, что особенно важно для сложных многоцелевых систем.

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