Семь уроков по PostScript


Траектория отсечения - часть 7


 

Цветовые модели в PostScript

 

В языке поддерживаются две цветовые модели: HSB (тон-насыщенность-яркость) и RGB (красный-зеленый-голубой). В каждой из этих моделей можно задать любой цвет с помощью трёх числовых параметров. В более простой модели RGB цвет задаётся сочетанием интенсивности трёх основных цветов: красного, зеленого и голубого. Интенсивность цвета задаётся числом в диапазоне от 0 до 1, причём 0 означает полное отсутствие данного цвета, а 1 – его максимальную интенсивность. Если для всех трёх цветов заданы равные интенсивности, то в результате получится чистый серый цвет с градацией по всей шкале от белого (0, 0, 0) до черного (1, 1, 1). Напомню, что уровень серого цвета обычно устанавливается оператором setgray.

В HSB тон

задаёт собственно цвет. Он определяется его расположением на цветовом круге: 0°

-- чистый красный, 120°

-- зелёный, 240° -- синий. Остальные цвета получаются из смешения двух соседних. (Так, 60° -- жёлтый, , 180°

-- голубой, 300°

-- фиолетовый.) Насыщенность – густота цвета заданного тона: 0 соответствует отсутствию цвета, а 1 – максимальной его насыщенности. Яркость

– общая интенсивность цвета (содержание белого цвета в данном цвете): 0 соответствует чёрному цвету, а 1 – белому (максимальной интенсивности).

Цвет может быть задан с помощью соответствующих модели операторов setrgbcolor и sethsbcolor.

 

Выборка произвольного элемента из стека

 

Оператор index удаляет неотрицательное целое число n из стека операндов, отсчитывает n-й элемент от вершины стека и помещает копию этого элемента в стек. Это очень напоминает выборку элемента массива. При этом первый элемент в стеке имеет индекс 0. Вместе с операторами copy, dup и roll он позволяет свободно манипулировать содержимым стека операндов.

 

Синтаксис: an ... a0 n index à an ... a0 an

где an ... a0 – элементы стека операндов.

 

Пример.

Обозначим буквами содержимое стека, тогда:

A D G 0 index à A D G G

A D G J F 4 index à A D G J F A




- Начало -  - Назад -  - Вперед -