Отсечение примитивов других типов

7.5. Отсечение примитивов других типов

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

Иис. 7.20. Отсечение кривых

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


⇐ Предыдущая| |Следующая ⇒