Машинная графика - Учебное пособие (П.В.Вельтмандер)

0.12.3  световое перо (lightpen)

Световое перо (рис. 0.12.1) служит для непосредственного указания элементов изображения на экране. При аналоговой генерации векторов (символов) можно идентифицировать конкретный вектор (символ). При цифровой генерации векторов можно идентифицировать "рассматриваемую" точку изображения. Из-за нечеткой оптики светового пера и трудностей позиционирования в точку на экране эта возможность практически не нужна. Чаще световое перо используется для указания всего элемента изображения. В каждом случае используется временное соответствие светового сигнала и сиюминутного состояния обработки команд построения. На векторном дисплее таким образом устанавливается однозначное соответствие между текущей командой, отрабатываемой дисплейным генератором, и элементом изображения, от которого пришел световой импульс.

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

Пример дисплейного файла с двумя указуемыми объектами

Команда

Смысл

Стек picid

. . . . . .

любые дислейные команды

пусто

picid 001

идентификатор указания 001

001

. . . . . .

графические команды

001

. . . . . .

построения элемента 001

001

end_picid

конец указуемой группы

пусто

. . . . . .

любые дислейные команды

пусто

picid 002

идентификатор указания 002

002

. . . . . .

графические команды

002

. . . . . .

построения элемента 002

002

end_picid

конец указуемой группы

пусто

. . . . . .

любые дислейные команды

пусто

endpic

конец дисплейного файла

пусто

В данном примере имеется два не вложенных указуемых элемента. До отработки команды picid 001 стек идентификаторов указания пуст. После ее отработки и до первой команды end_picid в стеке будет находится 001. После отработки end_picid стек идетификаторов указания очищается и до команды picid 002 остается пустым.

В растровых дисплеях отклонение луча не зависит от обрабатываемого изображения. В этом случае информация о указании дает позицию на экране. Для идентификации элемента картинки с помощью светового пера в растровых дисплеях требуется "прокрутка в уме" всего видимого изображения для определения принадлежности точки некоторому объекту (объектам). При этом также может использоваться программно реализованная техника идентификаторов указания. Для ускорения интерпретации изображения часто используются так называемые графические оболочки - обычно прямоугольники, иногда окружности, объемлющие элементы изображения. Если точка, указанная световым пером, находится вне графической оболочки, то интерпретацию объекта можно пропустить.

В качестве эха светового пера обычно используют сверхподсветку выделенного элемента изображения. В векторных дисплеях сверхподсветка примитивного элемента (вектор, символ) реализуется аппаратно.

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

Рисунок 83

Рис. 0.5.1: Схема работы светового пера. 1 - усилитель, 2 - фотоприемник, 3 - оптическая система