Какими координатами задается примитив окружность. Построение графических примитивов. Декартовы и полярные координаты

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

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

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

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

Дуга окружности также может строиться по-разному, в зависимости от способа задания ее параметров (табл. 1.3).

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

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

Команда Эллипс позволяет строить эллипс несколькими способами. В системе КОМПАС-3D LT V10 ввод эллипса осуществляется следующими командами:

Эллипс по центру и полуосям;

Эллипс по диагонали габаритного прямоугольника .

Ввод кривых рассмотрим также на примере системы КОМПАС-3D LT V10.

Команда NURBS-кривая позволяет начертить нерегулярный рациональный В-сплайн (Non-Uniform Rational B-Spline). При вводе этой кривой последовательно указываются опорные точки, возможно обращение к кнопке Замкнутый и построение соответствующих кривых (рис. 1.2). Можно задавать характеристики кривой - вес характерной точки и порядок кривой.

Команда Кривая Безье позволяет построить кривую, которая является частным случаем NURBS-кривой. Порядок построения аналогичен рассмотренному ранее (рис. 1.2, б).

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

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

Системы координат. Ввод координат

Когда программа AutoCAD запрашивает точку, команда ожидает ввода координат какой-либо точки текущего рисунка.

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

    Непосредственно с клавиатуры, путем указания численных значений;

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

Для удобства ввода координат можно использовать:

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

    Привязку к узлам невидимой сетки, определенной с некоторым шагом по Х или У. Такую привязку можно установить, либо нажав на функциональную клавишу F 9 , либо щелкнув мышью по кнопке SNAP в строке состояния. Если включен шаг привязки, то при перемещении мыши перекрестие будет «перепрыгивать» с одного узла невидимой сетки на другой.

По умолчанию в AutoCAD используется так называемая мировая система координат МСК – World Coordinate System (WCS ) . Она определена так, что ось ОХ направлена слева направо, ось ОУ – снизу вверх, ось OZ – перпендикулярно экрану, вовне.

Как правило, для выполнения конкретного проекта удобнее определить пользовательскую систему координат, ПСК – User Coordinate System (UCS ) , которую можно сместить относительно мировой и\или повернуть под любым углом. Допускается существование нескольких ПСК и возможен переход от одной ПСК к другой.

Декартовы и полярные координаты

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

Ввод абсолютных координат производится в следующих форматах:

    Декартовы (прямоугольные) координаты . При этом для определения двухмерных и трехмерных координат применяются три взаимно перпендикулярные оси: Х, У и Z. Для ввода координат указывается расстояние от точки до начала координат по каждой из этих осей, а также направление (+ или -). При начале нового рисунка текущей системой всегда является МСК, следовательно ось Х направлена горизонтально, ось У – вертикально, а ось Z перпендикулярна плоскости ХУ.

    Полярные координаты. При вводе координат указывается расстояние, на котором располагается точка от начала координат, а также величина угла, образованного полярной осью и отрезком, мысленно проведенными через данную точку и начало координат. Угол задается в градусах против часовой стрелки. Значение 0 соответствует положительному направлению по оси ОХ.

Относительные координаты задают смещение от последней введенной точки. При вводе точек в относительных координатах можно использовать любой формат записи в абсолютных координатах: @ dx , dy – для декартовых, @ r < A – для полярных.

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

Определение трехмерных координат

Трехмерные координаты задаются аналогично двумерным, но к двум составляющим по осям Х и У добавляется третья величина – по оси Z.

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

Значения координат независимо от способа ввода всегда связано с некоторой системой координат. При работе в трехмерном пространстве значения x, y и z указывают либо в МСК либо в ПСК.

Ввод трехмерных декартовых координат

Трехмерные декартовы координаты (x,y,z) вводятся аналогично двухмерным. По факту в AutoCAD не существует двумерных координат, просто по умолчанию координата z принимается равной нулю. При вводе декартовых трехмерных координат с клавиатуры вводятся три числа через запятую, например: 3,5,2. По аналогии в трехмерном пространстве указываются относительные координаты.

Свойства примитивов

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

Разделение рисунка по слоям

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

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

Управление установками свойствами слоев осуществляется в диалоговом окне Layer Properties Manager . Оно загружается из падающего меню Format\Layer или щелчком по пиктограмме Layer Properties Manager на панели инструментовLayer .

При создании нового рисунка автоматически создается слой, названный 0, которому присваиваются белый цвет, непрерывный тип линии Continuous , вес (толщина) линии Default , по умолчанию соответствующей толщине 0,25 мм. Этот слой не может быть удален или переименован.

Слои обладают следующими свойствами:

    Status – состояние слоя. Назначение слою статуса текущего;

    Name – имя слоя. Состоит из алфавитно-цифровой информации, включающей специальные символы и пробелы;

    On – видимость слоя. При этом на экране отображаются только те примитивы, которые принадлежат видимому слою, однако примитивы в скрытых слоях являются частью рисунка и участвуют в регенерации;

    Freeze – замораживание слоя. Означает отключение видимости слоя при регенерации и исключение из генерации примитивов, принадлежащих замороженному слою;

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

    Color – цвет примитивов заданного слоя;

    Linetype – тип линии, которым будут отрисовываться все примитивы, принадлежащие слою;

    Lineweight – вес(толщина) линии, которой будут отрисовываться все примитивы, принадлежащие слою;

    Plot style – стиль печати для заданного слоя;

    Plot – разрешение\запрет вывода слоя на печать;

    Description – описание слоя.

Для создания нового слоя необходимо щелкнуть по пиктограмме New Layer (Alt + N ) , находящейся в верхней части диалогового окна Layer Properties Manager , создается слой по умолчанию Layer 1 и т.д. Чтобы присвоить слою уникальное имя, необходимо двойным щелчком мыши по текущему названию активизировать поле ввода текста, а затем набрать имя с клавиатуры и нажать клавишу Enter .

Для того чтобы сделать слой текущим, необходимо установить указатель мыши в графе Status соответствующего слоя и щелкнуть по пиктограмме Set Current (Alt + C ) , Сделать слой текущим можно двойным щелчком мыши в графе Status соответствующего слоя, или использовать системную переменную CLAYER .

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

Управление видимостью слоя

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

Для отключения слоя в диалоговом окне Layer Properties Manager навести курсор на имя отключаемого слоя и затем щелкнуть по пиктограмме On . Аналогично происходит и замораживание слоя при щелчке по пиктограмме Freeze . По аналогии можно запретить или разрешить вывод слоя на печать с помощью пиктограммы Plot .

Блокировка слоев

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

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

Блокированные слои можно включать и отключать, а также изменять связанные с ними цвета и типы линий.

Блокировка слоя включается в диалоговом окне Layer Properties Manager Lock .

Назначение цвета слою

Присвоение цветов слоям осуществляется в диалоговом окне Layer Properties Manager навести курсор на имя слоя и затем щелкнуть по пиктограмме Color соответствующего слоя. При этом загружается диалоговое окно Select Color , предлагающее выбрать оттенок из палитры. Можно ввести либо его имя, либо номер в таблице индексов цветов ACI (AutoCAD Color Index ) . Стандартные имена присвоены только цветам с номерами от 1 до 7.

Кроме того, могут быть заданы ключевые слова ByLayer (по слою) и ByBlock (по блоку).

Назначение типа линии слою

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

Назначение типа линии слою осуществляется в диалоговом окне Layer Properties Manager Linetype соответствующего слоя. В открывающемся диалоговом окне Select Linetype выбирается подходящий тип линии. Если в предлагаемом списке нет нужного варианта, следует подгрузить его, щелкнув по кнопке Load .

Назначение веса (толщины) линии слою

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

Назначение слоям и объектам различных весов позволяет повысить наглядность рисунка. Веса линий можно выбрать из определенного ряда значений, среди которых есть специальный вес под названием Default . По умолчанию вес линии Default соответствует толщине 0,25 мм (0,01 дюйм).

Вес линии устанавливается в диалоговом окне Layer Properties Manager . Для этого необходимо щелкнуть мышью по пиктограмме Lineweight соответствующего слоя, а затем в раскрывшемся диалоговом окне выбрать из списка подходящее значение.

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

Палитра свойств объектов

Палитра Properties это единый инструмент, управляющий практически всеми свойствами объектов рисунка. В палитре собрано около 40 диалоговых окон и команд, которые были разрознены в более ранних версиях AutoCAD . Загружается она командой PROPERTIES либо из падающего меню Modify \ Properties либо щелчком по пиктограмме Properties (Ctrl +1) на стандартной панели инструментов.

В верхней части палитры расположен раскрывающийся список, содержащий типы и количество выбранных объектов. Справа от него – кнопки переключения Noggle value of PICKADD Sysvar и выбора объектов Select Objects и Quick Select .

Графический примитив

Графический примитив

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

По-английски: Graphic primitive

Финансовый словарь Финам .


Смотреть что такое "Графический примитив" в других словарях:

    графический примитив - Элементарные объекты программ рисования (отдельные окружности, линии, прямоугольники, кривые и т.д.), из которых складывается изображение. Тематики информационные технологии в целом EN drawing entityGDPgraphics draw… …

    выходной (графический) примитив - элемент отображения — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом Синонимы элемент отображения EN output primitive … Справочник технического переводчика

    Примитив - Абстрактное независимое от реализации представление взаимодействий между пользователем услуг и поставщиком услуг Источник: ГОСТ 28696 90: Системы обработки информации. Передача данн … Словарь-справочник терминов нормативно-технической документации

    Графический конвейер аппаратно программный комплекс визуализации трёхмерной графики. Содержание 1 Элементы трехмерной сцены 1.1 Аппаратные средства 1.2 Программные интерфейсы … Википедия

    примитив вывода - Базовый графический элемент, который может использоваться для построения изображения. Примечание Примитивами вывода могут быть, например, точка, отрезок линии, последовательность символов. [ГОСТ 27459 87] Тематики машинная графика EN output… … Справочник технического переводчика

    Примитив вывода - 17. Примитив вывода Output primitive Базовый графический элемент, который может использоваться для построения изображения. Примечание. Примитивами вывода могут быть, например, точка, отрезок линии, последовательность символов

Примитивы – это заранее определенные основные геометрические элементы, при помощи которых строятся более сложные модели.

В системе AutoCAD имеется обширный набор примитивов: точка, отрезок, круг, дуга, полилиния, мультилиния, сплайн, текст, блок, эллипс, многоугольник и т. д.

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

Рис. 12. Панель инструментов Рисование

Рисование точки

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

После ввода команды _point (точка) и нажатия клавишиEnter ,AutoCADпредложит вам ввести координаты точки. Их необходимо указать через запятую и нажать Enter .

Используя командную строку, постройте точку с координатами 30,40.

По умолчанию AutoCADизображает точку одним пикселем. Размер и вид точки можно менять, для этого служат системные переменныеPDSIZE иPDMODE соответственно.

Измените значение системной переменной PDMODE на 66, а значение PDSIZE на 10.

Установить размер и вид точки можно с помощью диалогового окна Отображение точек , вызвав его из менюФормат (рис. 13).

Рис. 13. Настройка размера и вида точки

Установите размер точки 5, а отображение символом +.

Рисование отрезка

Для рисования отрезка применяется команда _ line (отрезок) Рисование с помощью кнопкиили изОбозревателя меню Рисование Отрезок.

Нарисуйте произвольную ломаную, используя команду Отрезок.

После указания первой точки, в командной строке появляется сообщение «Следующая точка или [Отменить]: ». Это сообщение означает, что можно указать на экране не только следующую точку, но и выбрать опциюОтменить . Она отменяет последнее действие команды, т.е. выполняет так называемыйоткат . Для отмены последнего действия необходимо в командной строке набрать словоОтменить в верхнем или нижнем регистре и нажать клавишуEnter . Если в опции какие-нибудь буквы являются прописными, то в командной строке достаточно ввести только эту часть имени опции в верхнем или нижнем регистре. В данном случае для отмены можно ввестиО илио , и нажать клавишуEnter .

Если на экране изображено более двух точек подряд, то в командной строке появляется сообщение «Следующая точка или [Замкнуть/Отменить]: ». После ввода в командную строку буквыЗ в верхнем или нижнем регистре и нажатия клавишиEnter , на экране появится еще один отрезок, соединяющий конец последнего отрезка и начало первого.

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

Если требуется прервать выполнение какой-либо команды необходимо нажать клавишу Esc .

Нарисуйте треугольник с вершинами (50,25), (50,100) и (120,50).

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

Рис. 14. Контекстное меню

При построении отрезков, направленных строго вдоль осей координат используется ортогональный режим «Орто» , включить который можно в строке состоянияили клавишейF 8 .

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

Еще одним способом рисования отрезков является способ Направление – Расстояние , с помощью которого можно рисовать отрезки в заданном направлении и определенной длины. Для этого необходимо выполнить следующие действия:

    выбрать инструмент Отрезок ;

    указать первую точку отрезка;

    переместить курсор в нужном направлении;

    набрать в командной строке длину отрезка (например, 100), и нажать Enter .

Используя способ рисования Направление – Расстояние, в ортогональном режиме проектирования начертите прямоугольник 100×70.

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

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

Все это время построение точек и отрезков производилось в декартовой (прямоугольной) системе координат. ВAutoCADсуществует также способ задания координат вполярной системе . Для этого сначала указывается длина, ставится знак <, а затем величина угла. Например, для построения отрезка, идущего из начала координат длиной 50, под углом 60 градусов к оси Х, необходимо в качестве второй точки указать значение50 < 60 .

В AutoCADкромеабсолютных координат существуют иотносительные координаты, при которых за начало отсчета берется последняя построенная точка. При указании относительных координат используется символ @, например,@ 100,50 .

Используя полярные и относительные координаты, постройте равносторонний треугольник со стороной 30 мм.

Рисование прямой

Для рисования прямой предназначена команда _ xline (прямая) которая может быть введена в командной строке, вызвана из панели инструментовРисование с помощью кнопкиили изОбозревателя меню Рисование Прямая.

Команда _ xline (прямая) имеет пять опций:

    Гор – построение горизонтальных линий;

    Вер – построение вертикальных линий;

    Угол – построение линий под углом;

    Бисект – построение биссектрисы угла, для которой нужно указать вершину и стороны;

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

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

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

Рисование луча

Для построения луча используется команда _ ray (луч) Рисование кнопкой или изОбозревателя меню Рисование Луч.

Постройте несколько произвольных лучей.

Очистите рабочий экран от всех примитивов, которые вы начертили, используя кнопку Выбрать все , расположенную в панели инструментов Утилиты вкладки ленты Главная и клавишу Delete .

Рисование окружности

Для построения окружности используется команда _ circle (круг) , которая может быть введена в командной строке, вызвана из панели инструментовРисование с помощью кнопки или изОбозревателя меню Рисование Круг.

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

    по центру окружности и ее радиусу;

    по центру окружности и ее диаметру;

    по двум точкам диаметра окружности;

    по трем точкам окружности;

    по двум касательным и радиусу;

    по трем касательным.

Для произвольного треугольника постройте вписанную и описанную окружности (рис. 12).

Рис. 16. Построение вписанной и описанной окружностей

Рисование дуги

Для построения дуги используется команда _ arc (дуга) , которая может быть введена в командной строке, вызвана из панели инструментовРисование с помощью кнопки или изОбозревателя меню Рисование Дуга.

Дугу можно нарисовать одиннадцатью способами (рис. 17):

Рис. 17. Способы рисования дуг

Нарисуйте несколько дуг различными способами.

Рисование эллипса

Для рисования эллипса используется команда _ ellipse (эллипс) Рисование с помощью кнопки или изОбозревателя меню Рисование Эллипс.

Нарисуйте эллипс и эллиптическую дугу (рис. 18).

Рис. 18. Примеры эллипса и эллиптической дуги

Рисование прямоугольника

Для построения прямоугольника используется команда _ rectang (прямоугольник или прямоуг) , которая может быть введена в командной строке, вызвана из панели инструментовРисование с помощью кнопки или изОбозревателя меню Рисование Прямоугольник.

Команда _rectang(прямоугольник, прямоуг) имеет пять опций:

    Фаска – задание двух длин фаски в каждом углу прямоугольника;

    Сопряжение – задание радиуса скругления углов прямоугольника;

    Уровень – задание уровня для построения прямоугольника, смещенного по оси Z трехмерного пространства;

    Высота – задание высоты для построения прямоугольника, выдавленного вдоль оси Z трехмерного пространства;

    Ширина – задание ширины линии.

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

Нарисуйте прямоугольники, изображенные на рис. 15.

Рис. 19. Примеры прямоугольников

Рисование кольца

Для рисования кольца используется команда _donut (кольцо) , которая может быть введена в командной строке, вызвана из панели инструментовРисование с помощью кнопки или изОбозревателя меню Рисование Кольцо .

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

Для всех объектов рисунка можно отменить сплошное заполнение (рис. 21), изменив значение системной переменной FILLMODE с1 на0 .

Нарисуйте кольца с разными диаметрами (рис. 20) и отключенной опцией закраски (рис. 21).

Рис. 20. Примеры колец

Рис. 21. Кольцо с отключенной закраской

Рисование правильного многоугольника

Для рисования правильного многоугольника используется команда _ polygon (мн-угол) , которая может быть введена в командной строке, вызвана из панели инструментовРисование с помощью кнопки или изОбозревателя меню Рисование Многоугольник.

При рисовании правильного многоугольника сначала необходимо указать число его сторон, а потом центр или сторону. Если пользователь выбирает опцию Сторона , то необходимо указать две точки стороны многоугольника, по которым он будет строиться. Если же указывается центр многоугольника, то следующий вопрос будет такой: «Задайте опцию размещения [Вписанный в окружность/Описанный вокруг окружности]: ». После ввода нужной команды (В илиО в верхнем или нижнем регистре) задается радиус окружности.

Постройте правильные многоугольники, изображенные на рис. 22.

Рис. 22. Примеры правильных многоугольников

Рисование полилинии

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

Для рисования полилинии служит команда _pline (плиния) , которая может быть введена в командной строке, вызвана из панели инструментовРисование с помощью кнопки или изОбозревателя меню Рисование Полилиния.

После ввода команды _pline (плиния) необходимо указать начальную точку полилинии. Последующий запрос содержит дополнительную информацию: «Следующая точка или [Дуга/ Полуширина/ длИна/ Отменить / Ширина]: ». При указании второй точки полилинии появляется еще одна опцияЗамкнуть .

Рассмотрим более подробно опции полилинии:

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

    Замкнуть – добавление замыкающего участка полилинии;

    Полуширина – задание полуширины полилинии;

    длИна – построение сегмента, являющегося продолжением предыдущего участка с заданной длиной;

    Отменить – отмена последней операции;

    Ширина – задание ширины очередного сегмента полилинии (ширина начала и конца сегмента может быть разной).

При переходе в режим рисования дуг предлагается следующий набор опций:

    Угол – величина центрального угла дугового сегменты;

    Центр – центр для дугового сегмента;

    Замкнуть – замыкание полилинии дуговым сегментом;

    Полуширина – полуширин следующего дугового сегмента;

    Линейный – переход в режим рисования линейных сегментов;

    Радиус – радиус дугового сегмента;

    Вторая – вторая точка для построения дугового сегмента;

    Отменить – отмена последнего построенного сегмента;

    Ширина – ширина следующего сегмента.

Рассмотрим пример рисования полилинии в виде стрелочки (рис. 23). Для этого введите команду _pline(плиния) в командной строке или нажмите кнопку на панели инструментов Рисование . Укажите на графическом экране начальную точку, а на вопрос «Следующая точка или [Дуга/Полуширина/длИна/Отменить/Ширина]:» введите букву Ш , так как требуется изменить ширину линии. Начальную и конечную ширину установите по 1 ед. Начертите горизонтальную линию размером 20 ед. Далее установите начальную ширину равную 3 , а конечную 0 . Отложите в горизонтальном направлении линию длиной 7 ед. У вас должна получиться полилиния, изображенная на рис. 19.

Рис. 23. Полилиния в виде стрелы

Постройте полилинии, изображенные на рис. 20.

Рис. 24. Примеры полилиний

Рисование мультилинии

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

Для рисования мультилинии служит команда _mline (млиния) , которая может быть введена в командной строке или вызвана изОбозревателя меню Рисование Мультилиния.

Команда _mline (млиния) содержит следующие опции:

    Расположение – определение положения указываемых точек относительно всей мультилинии (Верх – мультилиния рисуется ниже курсора; Центр – мультилиния центрируется относительно курсора; Низ – мультилиния рисуется выше курсора);

    Масштаб – управление шириной мультилинии;

    Стиль – задание стиля для мультилинии.

Постройте мультилинию с установленным по умолчанию стилем STANDARD (рис. 25).

Рис. 25. Пример мультилинии

Стиль STANDARD является текущим для мультилиний, но пользователь имеет возможность создавать свои собственные стили. Создать новый стиль можно с помощью командыmlstyle (млстиль) , которой соответствует пункт менюФормат Стили мультилиний . В результате этой команды перед вами появится диалоговое окноСтили мультилиний (рис. 26.)

Рис. 26. Стили мультилиний

Для создания нового стиля необходимо щелкнуть по кнопке Создать, и в появившемся диалоговом окне (рис. 27) указать имя нового стиля.

Рис. 27. Создание нового стиля

После нажатия кнопки Продолжить установите необходимые параметры нового стиля (рис. 28).

Рис. 28. Установка параметров нового стиля мультилинии

Создайте новые стили и с их помощью постройте мультилинии, изображенные на рис. 29.

Рис. 29. Примеры мультилиний

Для редактирования мультилинии достаточно щелкнуть по ней левой кнопкой мыши, в результате чего перед вами появиться диалоговое окно Инструменты редактирования мулиьтлиний (рис. 30).

Рис. 30. Редактирование мультилинии

С помощью мультилинии постройте перекресток дороги (рис. 31).

Рис. 31. Применение инструментов редактирования

Рисование облака

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

Для построения облака существует команда _ revcloud (облако) которая может быть введена в командной строке, вызвана из панели инструментовРисование с помощью кнопкиили изОбозревателя меню Рисование Облако.

Команда _revcloud (облако) содержит следующие опции:

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

    Объект – выбор замкнутого объекта для преобразования в облако;

    Стиль – задание стиля для дуг облака (Обычный или Каллиграфия ).

Используя, стиль Каллиграфия и длину дуги 50 ед. нарисуйте облако, изображенное на рис. 32.

Рис. 32. Пример облака со стилем Каллиграфия

С помощью опции Объект преобразуйте прямоугольник в облако (рис. 33).

Рис. 33. Пример превращения объекта в облако

Рисование сплайна

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

Рис. 34. Пример сплайна

Для построения сплайна существует команда _ spline (сплайн) которая может быть введена в командной строке, вызвана из панели инструментовРисование с помощью кнопкиили изОбозревателя меню Рисование Сплайн.

После выбора команды _ spline (сплайн) перед вами появится вопрос «Первая точка или [Объект] :». После указания двух первых точек появляется следующий запрос: «Следующая точка или [Замкнуть/Допуск] ». ОпцияЗамкнуть позволяет соединить начало и конец сплайна, аДопуск – задать величину отклонения (допуск) от введенных точек, что позволяет сделать линию более гладкой.

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

Опция Объект позволяет преобразовать сглаженную полилинию в сплайн.

Рисование полосы

Для рисования полосы – ломаной линии с постоянной шириной служит команда _trace (полоса) , которая вводится только с клавиатуры.

После ввода команды _trace (полоса) в командную строку необходимо указать ширину полосы, а затем построить ее по точкам.

Постройте полосы с разной шириной, изображенные на рис. 35.

Рис. 35. Примеры полос с различной шириной

Рисование фигуры

Фигура состоит из последовательно расположенных треугольников или четырехугольников. Для ее построения используется команда _solid (фигура), которая может быть введена в командной строке или вызвана изОбозревателя меню Рисование МоделированиеСети 2 D фигура .

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

Рис. 36. Порядок построения вершин четырехугольника

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

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

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

К группе контурных графических примитивов относятся функции:

void far line(int x1,int y1,int x2,int y2);

void far linerel(int dx,int dy);

void far lineto(int x,int y);

void far rectangle(int left,int top,int right,intbottom);

void far drawpoly(int num_points,int far *poly_points);

void far circle(int x,int y,int radius);

void far arc(int x,int y,int start_angle,int end_angle,int radius);

void far ellipse(int x,int y, int start_angle,int end_angle,int x_radius,int y_radius);

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

Функции line, linerel и lineto соединяют две точки плоскости отрезком прямой. Для первой обе соединяемые точки указываются явно своими координатами. Функции linerel и lineto в качестве первой точки используют текущую графическую позицию CP, а вторую выбирают аналогично функциям moverel и moveto, т. е. через приращения координат или по явному указанию. Все три функции пользуются системой координат графического окна. Однако им можно передать координаты любых точек, даже лежащих за пределами страницы. Функция graphresult не сообщает об ошибке, а соединяющая линия проводится правильно. Если для окна установлен режим отсечения, то части линии, выходящие за пределы окна, не заносятся в видеопамять.

Функция rectangle рисует на странице видеопамяти контур прямоугольника по указанным координатам левого верхнего и правого нижнего угла.

Функция drawpoly рисует ломаную линию, соединяя точки на плоскости. В первом аргументе передается количество таких точек, а второй указывает на массив целых чисел. Каждая пара чисел из этого массива интерпретируется как пара координат (x, y) очередной точки. Для того чтобы нарисовать замкнутую ломаную линию (многоугольник), первая и последняя пары элементов массива должны быть одинаковыми.

Функция circle рисует окружность радиусом radius с центром в точке с координатами (x, y). Функция arc и ellipse вычерчивают дуги окружности и эллипса с центром в точке (x, y), соответственно ограниченные углами start_angle и end_engle. Для дуги окружности задается ее радиус radius, а для дуги эллипса радиусы по осям x_radius и y_radius. Оси эллипса всегда предполагаются параллельными осям координат страницы.

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

Для функций rectangle, drawpoly, circle, arc и ellipse справедливы замечания относительно системы координат и режима отсечения, которые были сделаны относительно функций рисования линий.

С дугами окружностей связана функция

void far getarccoords(struct arccoordstype far *arccoords);

Эта функция возвращает характеристики дуги окружности, построенной при последнем вызове функции arc. Характеристики дуги записываются в переменную *arccoords. Тип этой переменной определен следующим способом:

struct arccoordstype

int x_start, y_start, x_end, y_end;

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

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

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

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

void far setwritemode(int mode);

Аргумент этой функции должен принимать значение 0 (простое копирование кода атрибута пикселя в видеопамять) и 1 (операция “исключающее или”).

void far setlinestyle(int line_style,unsigned user_pattern,int thickness);

устанавливает характер и толщину линий геометрических объектов. Аргумент thickness воздействует на контурные графические примитивы, а аргументы line_style и user_pattern - только на кусочно-линейные.

Аргумент thickness принимает значения NORM_WIDTH (толщина равна 1 пиксель) и THICK_WIDTH (толщина равна 3 пикселям). Аргумент linestyle задает характер рисуемой линии. Значения аргумента должны выбираться из констант перечислимого типа line_styles (например SOLID_LINE означает сплошную линию):

enum line_styles

SOLID_LINE=0,DOTTED_LINE,CENTER_LINE,

DASHED_LINE,USERBIT_LINE

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

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

void far getlinesettingstype(struct linesettingstype far *line_info);

Данная функция заносит информацию в структуру, имеющую описание

struct linesettingstype

unsigned upattern;

Группа площадных графических функций имеет прототипы:

void far bar(int left, int top, int right, int bottom);

void far bar3d(int left, int top, int right, int bottom, int depth, int top_flag);

void far fillpoly(int num_points, int far *poly_points);

void far fillellipse(int x, int y, int x_radius, int y_radius);

void far pieslice(int x, int y, int start_angle, int end_angle, int radius);

void far sector(int x, int y, int start_angle, int end_angle, int x_ radius, int y_radius);

void far floodfill(int x, int y, int num_color_palette);

Функции bar и bar3d строят прямоугольники, координаты которых заданы первыми четырьмя аргументами функций и закрашивают его внутреннюю область. Функция bar не выводит внешний контур прямоугольника, а функция bar3d дополнительно обрамляет прямоугольник контура и тем же контуром дорисовывает проекцию параллелепипеда, построенного на базе этого прямоугольника. Глубина проекции задается аргументом depth, аргумент top_flag указывает, рисовать (если не нуль) или не рисовать (если нуль) верхние ребра параллелепипеда.

Функция fillpoly получает аргументы аналогично функции drawpoly, рисует контур и заполняет его внутренность. Однако если функция drawpoly допускает незамкнутые контуры, то функция fillpoly всегда соединяет последнюю точку в полученном списке с первой, автоматически замыкая контур.

Функция fillellipse заполняет эллипс с центром в точке (x, y) и радиусами x_radius и y_radius. Кроме того, она рисует контур эллипса.

Функции pieslice и sector похожи тем, что обе закрашивают указанные сектора, только pieslice делает это для кругового сектора, а sector для эллиптического. Аргументы, которые им передаются, те же, что и для функций arc и ellipse соответственно. После того как сектор закрашен, рисуется его контур. В отличие от функций arc и ellipse, функции pieslice и sector строят сектор от меньшего значения угла к большему (а не от start_angle к end_angle). Из-за этого невозможно заставить функции pieslice и sector изобразить сектор, пересекающий положительное направление оси X.

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

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

Для управления видом заполнения внутренней области служит функция

void far setfillstyle(int pattern,int num_color_palette);

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

enum fill_pattern

EMPTY_FILL=0,SOLID_FILL,LINE_FILL,LTSLASH_FILL,

SLASH_FILL,BKSLASH_FILL,LTBKSLASH_FILL,

HATCH_FILL,XHATCH_FILL,INTERLEAVE_FILL,

WIDE_DOT_FILL, CLOSE_DOT_FILL,USER_FILL

Аргумент pattern может принимать любые значения, кроме USER_FILL. Значение этой константы используется только при обработке информации, получаемой функцией getfillsettings (см. далее).

Шаблон условно можно представить в виде матрицы размером 8 х 8 элементов. Элементы матрицы шаблона имеют значения 0 или 1. Если элемент равен 1, то атрибуту соответствующего пикселя области будет присвоено значение num_color_palette, в противном случае атрибут пикселя получит значение кода фона.

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

void far setfillpattern(char far *user_pattern,int num_color_palette);

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

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

void far getfillsettings(struct fillsettingstype far *fill_info);

void far getfillpattern(char far *user_pattern);

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

struct fillsettingstype

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