4.34. Измените алгоритм граничного заполнения четырехсвязной области таким образом, чтобы можно было избежать занесения в стек лишней информации, включив в него растровые методы.
4.35. Напишите процедуру для граничного заполнения восьмисвязной области.
4.36. Объясните, как эллипс, изображенный с помощью метода средней точки, можно правильно закрасить с помощью алгоритма граничного заполнения.
4.37. Разработайте и реализуйте алгоритм потокового заполнения для закрашивания внутренней части любой заданной фигуры.
4.38. Определите и реализуйте процедуру для изменения размера существующего прямоугольного узора заполнения.
4.39. Напишите процедуру реализации алгоритма мягкого закрашивания. Тщательно определите, какой алгоритм мягкого закрашивания следует применить и какие цвета объединить.
4.40. Придумайте алгоритм для подбора высоты и ширины символов, заданных в виде прямоугольной сетки.
4.41. Примените стандартные функции для определения вектора ориентации символов и направления текстовой дорожки для управления изображением текстовой строки.
4.42. Напишите программу для выравнивания текста с помощью заданных входных значений параметров выравнивания.
4.43. Разработайте процедуры для применения атрибутов маркеров (размера и цвета).
4.44. Реализуйте процедуру устранения контурных неровностей, дополнив алгоритм построения прямой линии Брезенхема таким образом, чтобы можно было подбирать интенсивности пикселей непосредственно около траектории прямой.
4.45. Реализуйте процедуру устранения контурных неровностей в алгоритме средней точки для прямой линии.
4.46. Разработайте алгоритм для устранения контурных неровностей границ эллипса.
4.47. Измените растровый алгоритм для закрашивания фигур, включив в него функцию устранения контурных неровностей. Воспользуйтесь когерентными методами для уменьшения количества вычислительных операций в следующих друг за другом строках развертки.
4.48. Напишите программу для применения алгоритма сглаживания Питтвея-Уоткинсона как растровой процедуры для заполнения внутренней области многоугольника, воспользовавшись функцией нанесения точек на график пакета OpenGL.
ГЛАВА 5
Геометрические преобразования
о этого момента рассказывалось, как сцену можно описать через такие графические примитивы, как отрезки и закрашенные области, используя параметры этих примитивов. Кроме того, изучалось отображение выходных примитивов на растровое устройство с помощью алгоритмов строк развертки. В данной главе рассматриваются преобразования, под воздействием которых объекты меняют свое положение или размеры. Эти операции также используются в процедурах наблюдения, переводящих описание сцены во внешних координатах на устройство вывода. Кроме того, они применяются во множестве других приложений, например, автоматизированном проектировании и компьютерной анимации. Архитектор, например, создает план, варьируя ориентацию и размер частей-компонентов, а специалист по компьютерной анимации проектирует видеоряд, перемещая “камеру” или объекты сцены по заданным траекториям. Операции, применяющиеся к геометрическому описанию объекта с целью изменения его положения, ориентации или размера, называются геометрическими преобразованиями.