Создание изображений. Графические примитивы

«Координаты на плоскости» - Через каждую вершину, проведите прямую, параллельную противоположной стороне. Через отмеченные точки проведём прямые, параллельные осям. Отметим на координатной плоскости т.А(3;5), В(-2;8), С(-4;-3), Е(5;-5). Координатная плоскость (урок изучения новой темы). Вычислите: Х - абсцисса У - ордината. Цели:

«Декартовы координаты» - Знакомство с декартовой системой координат. Гиппарх. Крылов А.Н. Аметист(-2;2) Рубин (4;0). Птолемей. Точка плоскости -геометрический объект -заменяется парой чисел (х; у), т.е. алгебраическим объектом. Изумруд – предохраняет от болезней. Рубин – защищает от бед. Ось Оу - ордината. Путешествие на остров "Координат".

«Координатная плоскость с координатами» - Самолет. 5. Решите уравнение: 0,9(4у-2)=0,5(3у-4)+4,4. Вариант 2 корабль. 4.Решите уравнение: Вариант 2. Координатная плоскость. Сколько км пути прошел поезд в третий день? Ружьё биатлониста. Вы должны выполнить 5 заданий и отметить 30 точек в координатной плоскости. Вариант 1. 2.Три тракториста вспахали 405 га земли.

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

«Метод координат в пространстве» - Метод координат в пространстве. (Обобщающий урок). Решите задачи. Тема. Распознай формулы.

«Система координат на плоскости» - Знакомы ли вы с историей возникновения координат? Какие виды систем координат вы знаете? Как построить точку с заданными координатами на координатной плоскости? Гиппарх. Какова роль темы в курсе математики и смежных дисциплин? Что называется системой координат? Где люди сталкиваются с координатами в повседневной жизни?

(Основы инженерной графики)
  • ЖЕЛЕЗОБЕТОННЫЕ КОНСТРУКЦИИ ПЛОСКИХ ПЕРЕКРЫТИЙ
    Все существующие типы плоских железобетонных перекрытий по их конструктивной схеме делятся на две основные группы: балочные и безбалочные. Балочные перекрытия состоят из балок, идущих в одном или двух направлениях, и опирающихся на них плит или панелей. Безбалочные перекрытия выполняются без балок, а...
    (Строительные конструкции)
  • (Управление финансами)
  • Понятие о графических примитивах
    На большинстве ЭВМ и, соответственно, ПК принят растровый способ изображения графической информации. Это означает, что изображение представляется в виде прямоугольной матрицы точек (пикселей). Каждый пиксель имеет свой цвет, выбираемый из заданного набора цветов - гак называемой палитры. Для реализации...
    (Основы инженерной графики)
  • Графическое представление PV и FV
    На рынке капиталов организации и люди обменивают денежные средства в настоящем на денежные средства в будущем. Прямая АБ представляет собой норму обмена на рынке капиталов между денежными средствами сегодня и денежными средствами через год. Ее наклон равен на графике тангенсу острого угла наклона прямой...
    (Управление финансами)
  • Подготовка, оформление и ведение графических документов, используемых сотрудниками органов внутренних дел в особых условиях
    В деятельности органов и учреждений МВД России нередко возникает необходимость использовать в работе план или схему участка местности. Составляются крупномасштабные планы территорий, обслуживаемых участковыми инспекторами, планы жилой и производственной зон учреждений исполнения наказания, схемы...
    (Тактико-специальная подготовка)
  • Основное значение графических примитивов - обеспечить наличие программных средств для рисования всевозможных геометрических объектов. Условно можно разбить все графические примитивы по типу рисуемых ими графических объектов на две группы: контурные и площадные. Функции первой группы рисуют всевозможные контурные линии. Ко второй группе относятся функции, предназначенные для рисования геометрических фигур с закрашиванием ограничиваемых ими областей.

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

    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 содержит код заполнения (номер входа во внутреннюю палитру). Вторая функция по переданному ей адресу записывает матрицу шаблона, установленную пользователем.

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

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

    Прямая является наиболее часто используемым графическим примитивом. Исходные элементы, с помощью которых строятся прямые, могут задаваться различными способами (табл. 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 – это Система Автоматического Проектирования (САПР). Она относится к классу программ CAD (Computer Aided Design), которые предназначены, в первую очередь, для разработки конструкторской документации: чертежей, моделей объектов, схем и т. д.

    Программа позволяет строить 2D и 3D чертежи любых назначения и сложности с максимальной точностью.

    Разработчиком программы является американская компания Autodesk, которая является на мировом рынке признанным лидером среди разработчиков систем САПР. Название программы – AutoCAD – образуется от английского Automated Computer Aided Drafting and Design, что в переводе означает «Автоматизированное черчение и проектирование с помощью ЭВМ».

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

    AutoCAD поддерживает несколько форматов файлов:
    - DWG – закрытый формат, разрабатываемый непосредственно утилитой;
    - DXF – открытый формат, используется для обмена данными с пользователями иных САПР;
    - DWF – для публикации 3D-моделей и чертежей.

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

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

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

    2. Рабочий стол AutoCAD:

    Падающие меню.

    Падающее меню Menu Browser – меню, появляющееся при щелчке кнопкой мыши на кнопке A в верхнем левом углу окна программы.

    Строка падающих меню может быть изменена путем добавления либо удаления тех или иных пунктов. Для этого необходимо выбрать в падающем меню пункты Tools > Customize > Interface…, в появившемся диалоговом окне настройки интерфейса пользователя Customize User Interface на вкладке Customize в области Customizatios in All CUI Files раскрыть пункт Menus. Далее установить указатель мыши на один из пунктов меню и, щелкнув правой кнопкой мыши, вызвать контекстное меню, в котором выбрать соответствующий пункт для удаления имеющихся или создания новых падающих меню.

    Строка падающих меню по умолчанию содержит следующие пункты:

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

    Edit – инструменты для редактирования частей графического поля рабочего стола программы, работы с буфером обмена и пр.;

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

    Insert – команды вставки блоков, внешних объектов, объектов других приложений;

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

    Tools – управление рабочими пространствами; палитрами; установка порядка прорисовки объектов и получение сведений о них; работа с блоками и их атрибутами; работа с языком AutoLISP; работа с пользовательской системой координат; настройка стандартов оформления; управление Мастерами (публикации в Интернете, установки плоттеров, создания таблиц стилей печати, цветозависимых стилей печати, компоновки листа, создания подшивки, импорта параметров печати); установка параметров черчения и привязок с помощью диалоговых окон и пр.;

    Draw – команды двумерного и трехмерного рисования;

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

    Modify – команды редактирования элементов чертежа;

    Window – многооконный режим работы с чертежами;

    Help – вывод на экран системы гипертекстовых подсказок.

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

    Графические примитивы это заранее определенные элементы, которые можно поместить в чертеж при помощи одной команды. Каждый графический примитив формируется на основании геометрического описания объекта.
    Примитивы (табл.№1.) можно классифицировать:

    • односложные и составные;
    • плоские и объемные (3d).

    Таблица №1

    Имя примитивы Команда
    1) Точка _Point
    2) Линия (Отрезок) _Line
    3) Луч _Ray
    4) Линия конструкции (Прямая) _Xline
    5) Фигура _Solid
    6) Полоса Trace
    7) Дуга _Arc
    8) Круг _Cirle
    9) Полилиния _Pline
    10) Прямоугольник _Rectang
    11) Полигон (Многоугольник) _Polygon
    12) Овал(Кольцо) _Donut
    13) Эллипс _Ellips
    14) Эскиз Sketch
    15) Сплайн _Spline
    16) Мультилиния _Mline
    17) 3DПолилиния 3DPoly
    18) Ящик Box
    19) Клин Wedge
    20) Конус (Дубль) Cone
    21) Цилиндр Cylinder
    22) Шар Spchere
    23) Тор Toruc

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

    Примитивы имеют следующие свойства:
    - Цвет (color);
    - Тип линий (linetype);
    - Масштаб типа линий;
    - Принадлежность слою;
    - Уровень и высота (elevation).