2. Процедуры машинной графики

2.3. Алгоритмы отсечения текста

 

 

Текст можно отсечь одним из нескольких способов.

Если каждую букву представлять в виде набора коротких отрезков прямых линий (штрихов), то можно выполнить операцию отсечения над каждым отрезком. Такой подход обеспечивает хорошие результаты (рис.2.5а), но он очень медленный и несовместим с обычными аппаратными генераторами букв.

Можно считать буквы объектами, которые не делятся, и отсекать строку литер с точностью до буквы. Каждая буква условно заключается в прямоугольник. Некоторая точка этой ячейки – центр или один из углов – согласовывается с окном: если точка внутри, то буква вычерчивается. Можно согласовать с окном всю ячейку буквы или ее диагональ. Если ячейка или ее диагональ целиком входят в окно литера вычерчивается, в противном случае – нет. На рис.2.5б,в показаны результаты роботы этих двух подходов: рис.2.5б – отсечение буквы по нижнему углу ячейки; рис.2.5в – отсечения по ячейке буквы. Отсечение по угловой точке и ячейке, диагонали дает одинаковый результат только тогда, когда ячейка не пересекается с окном. Более того, отсечение по ячейке буквы и отсечение по ее диагонали эквивалентные только тогда, когда стороны ячейки параллельные сторонам окна. При отсечении необходимо учитывать всю ячейку буквы (диагонали недостаточно).

Третий, наиболее простой подход к отсечению текста состоит в том, что вся строка букв считается объектом, который не делится, и/или весь показывается, или не показывается (рис.2.5г). При этом подходе необходимо согласовывать с окном или некоторую точку прямоугольника, который охватывает строка, или весь прямоугольник.

 

Рис. 2.5. Различные методы отсечения текста

Контрольные  вопросы.

1.  Назовите основные подходы к отсечению текста.

2.  Когда эквивалентны отсечение по ячейке буквы и отсечение по ее диагонали?

3.  В чем состоят недостатки отсечения текста при векторном задании букв?

     Содержание