В книге Пратта (Pratt) [Рга78] описаны матричные методы преобразования между различными системами представления цвета. Формирование полутонов рассматривается в статьях Джарвиса (Jarvis) [Jar76] и Кнута (Knuth) [Кпи87].
Алгоритмы формирования изображения
Упражнения
7.1. Пусть в параметрическом виде заданы два прямолинейных отрезка: р(а) = (1-а)р, + ар2, q(P) = (l-P)q, + Pq2.
Разработайте процедуру, которая будет определять, пересекаются ли эти отрезки, и если пересекаются, вычислять координаты точки пересечения.
7.2. По образцу процедуры, разработанной при выполнении упр. 7.1, разработайте процедуру анализа пересечения двух плоских многоугольников.
7.3. Докажите, что при отсечении одного выпуклого объекта другим выпуклым объектом образуется не больше одного выпуклого объекта.
7.4. Как можно использовать распараллеливание операций при анализе сцены со стороны пространства объектов и со стороны пространства изображения?
7.5. Поскольку и векторы, в частности нормали, и вершины можно представить в однородных координатах, то и к тем, и к другим можно применить преобразование, заданное матрицей вида. Покажите, что при таком преобразовании свойства вектора как нормали в общем случае не сохраняются.
7.6. Разработайте метод преобразования видового окна. Сформулируйте его в терминах матриц масштабирования и сдвига, которые представляют аффинные преобразования в двухмерном пространстве.
7.7. На ранних этапах развития компьютерной графики доминирующее положение занимали векторные системы, которые позволяли формировать только изображения, состоящие из отдельных линий (штриховые изображения). При обработке трехмерных сцен программно выполнялась процедура удаления невидимых линий. Многие из современных графических API позволяют создавать так называемые проволочные, или каркасные (wireframe), изображения объектов, которые также состоят только из линий (ребер поверхностей объектов сцены), но при этом часть линий, представляющих невидимые ребра поверхностей, удаляется из изображения. Чем отличается формулировка задачи удаления невидимых линий от задачи удаления невидимых поверхностей? Разработайте алгоритм удаления невидимых линий применительно к изображению, состоящему из ребер плоских многоугольников.