drawDot(xl. yl);

Если ломаная состоит из нескольких прямых, то каждая из них называется ребром (edge), а две смежные прямые встречаются в вершине (vertex). Ребра ломаной могут пересекаться, как показано на рис. 1.8. Ломаные задаются списком своих вершин, каждой из которых соответствует пара координат:

(лг0, у0), (*,, у,), (х2, у2),..., (хл, уп). (1.1)

Пример ломаной линии Например, ломаная, показанная на рис. 1.10, задана такой последовательностью

Рис. 1.10. Пример ломаной линии Например, ломаная, показанная на рис. 1.10, задана такой последовательностью: (2,4), (2, 11), (6, 14), (12, И), (12,4)... (Как задаются остальные вершины этой ломаной?)

Для рисования ломаных линий нам потребуется инструмент, представляющий собой подпрограмму типа

drawPolyline(poly);

где переменная poly - список, содержащий все концевые точки (дг., г/.) в какой-либо форме. Существуют различные способы введения такого списка в программу, и каждый из них имеет свои достоинства и недостатки.

Ломаная линия не обязана образовывать замкнутую фигуру, но если первая и последняя точки соединяются ребром, то такая ломаная линия становится многоугольником, или полигоном (polygon). Если, кроме того, никакие два ребра не пересекаются, то такой полигон называется простым (simple). На рис. 1.11 представлено несколько интересных полигонов: из них только а) и г) являются простыми. Полигоны являются фундаментальными примитивами компьютерной графики, отчасти потому, что их легко задавать. Многие алгоритмы рисования и рендеринга были специально настроены на оптимальную работу с полигонами. В главе 3 производится глубокий анализ полигонов.

Атрибуты прямых и ломаных линий Важными атрибутами ломаной являются цвет и толщина ее ребер, способ начертания ребер и способ, которым жирные (thick) ребра соединяются в концевых точках. Обычно всем ребрам ломаной линии задаются одинаковые атрибуты.

Две первые ломаные линии на рис. 1.12 отличаются друг от друга атрибутом «толщина линии» (line-thickness). Третья ломаная нарисована при помощи штриховых отрезков.

Когда линия является жирной, то ее концы имеют свои очертания и пользователь должен решить, каким образом «соединить» два смежных ребра. Рисунок 1.13 показывает, какие имеются возможно-


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