[Previous] [Contents] [Next]

Управление графическими элементами и создание рисунков

На самом деле все графические элементы, созданные с помощью функций рисования, являются объектами, т.е. помнят свое состояние и могут выполнять определенные действия. Каждый графический элемент имеет идентификатор -- положительное целое число. Этот идентификатор возвращается функцией рисования. Например, если вас интересует идентификатор нарисованной линии, то вы пишете следующий код:

int myline;
...
myline = Line (10, 20, 30, 40);

Нулевой идентификатор закреплен за окном графического терминала.

Зная идентификатор, вы можете управлять состоянием графического элемента и включать его в состав рисунка. В данном разделе рассмотрим следующие функции управления состоянием:

Show(int ident)
Показывает элемент с идентификатором ident (вызывается автоматически при создании элемента непосредственно в окне графического терминала).
Hide(int ident)
Скрывает элемент. Впоследствии он может быть показан с помощью функции Show().
Delete(int ident)
Удаляет элемент.
Clear(int ident)
Очищает элемент, удаляя все его внутренние элементы. Данная функция имеет смысл только для окна графического терминала и рисунков.

Приведем два примера использования этих функций.

Delete (myline); // удаляет нарисованную ранее линию

Clear (0); // очищает окно

Создание составного графического элемента, или рисунка, выполняется с помощью функции int Picture(int x, int y). Параметры функции задают точку привязки рисунка в окне терминала. Функция возвращает идентификатор рисунка. Первоначально рисунок пуст. Он наполняется графическими элементами путем вызова функций рисования с еще одним (после цвета) дополнительным параметром -- идентификатором рисунка. Координаты элементов исчисляются относительно левого верхнего угла рисунка. После наполнения рисунка элементами его можно показать с помощью функции Show().

Приведем пример рисунка и последовательности операций для его формирования и отображения.

QQ


int p = Picture (100, 100);
int c = RGB (255, 0, 0);
Ellipse (0, 0, 60, 60, c, p);
Line (30, 30, 30,  1, c, p);
Line (30, 30, 56, 45, c, p);
Line (30, 30,  4, 45, c, p);
Show (p);

С рисунком можно выполнять действия как с единым целым.


[Previous] [Contents] [Next]