Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кг часть 2.doc
Скачиваний:
16
Добавлен:
27.04.2019
Размер:
447.49 Кб
Скачать

Алгоритм вывода окружность.

Для вывода контура круга можно использовать соотношение между координатами Х и Y и радиусы окружности: X2+Y2= R, на базе этого соотношения можно построить алгоритм прямого вычисления координат, для реализации данного алгоритма необходимо вычислить квадратный корень, а он выполняется медленно; для вывода окружности существует инкрементный алгоритм Брезенхема. В нем использована симметрия круга в основном цикле вычисляется координаты точек круга, только для одного октанта сразу после этого рисуется 8-мь симметрично распределенных пикселей. Инкрементный алгоритм для элемента подобен алгоритму для круга. В алгоритмах использована симметрия эллипса по квадратам.

Алгоритм состоит из 2х циклов: сначала х=0 до х=dxt= . Идет прорисовка точек элемента симметрично, а потом до x=a y=0.

→Кривые Безье

Описываются в параметрической форме.

Значение t выступает как параметр, который отвечает координат отдельной точки линии. Параметрическое описание более удобно, чем задание в виде функции. Для кривых функции может быть очень сложной и неоднозначной. Кривые Безье классифицируют по значениям точек ориентиров:

  1. по 2-м точкам; кривая вырождается в отрезок прямой линии

P(t)=(1-t)P0+tP1

  1. по 3-м точкам:

P(t)=(1-t)2P0+2t(1-t)P1+t2P2

  1. по 4-м точкам:

→Геометрический алгоритм для Безье:

Этот алгоритм позволяет выводить координаты точек Безье по значениям t.

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

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

  3. стороны нового контура делятся пропорционально значению t и так далее.

До тех пор пока не будет получена единственная точка деления, эта точка и будет точкой кривой Безье.

→Алгоритм вывода фигур.

Фигура—плоский геометрический объект, который состоит из линий контура и точек внутри контура, в общем случае линий контура может быть несколько.

Например, когда объект имеет пустоты, тогда для описания необходимы 2 и более контура. Графически вывод фигуры разделяется на 2 задачи:

  1. вывод контура

  2. вывод точек заполнения

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

  1. Алгоритмы закрашивания от внутренних точек к границам контура.

  2. Алгоритм, который использует математическое описание контура.

Программирование компьютерной графики

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

После компиляции создается выполняемый файл, который можно запускать на различных компьютерах различной ОС Windows. Поскольку сами функции располагаются в модулях ОС, а в программах осуществляется только их вызов. Графические функции из состава подсистемы API объединены в отдельную группу GDI (Graphic Device Interface).

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

  1. создание, активация контекста, получение значения HDC

  2. прорисовка объектов с помощью графических функций API Windows

  3. уничтожение, деактивация контекста HDC