Функция рисует прямоугольник. В зависимости от параметров функции прямоугольник может быть закрашенным или не закрашенным. Прототип функции имеет следующий вид:
short _rectangle( short fill, short x_left, short y_top, short x_right, short y_bottom );
Прямоугольник определяетя координатами любых двух противоположных углов (x_left,y_top) и (x_right,y_bottom).
Граница прямоугольника изображается текущим цветом с использованием текущего стиля. Если например fill равен _GFILLINTERIOR, то прямоугольник закрашивается, а если _GBORDER - то не закрашивается. Для изменения текущего цвета используют функцию _setcolor().
Функция возвращает ненулевую величину, если она выполнилась успешно и ноль, если произошла ошибка.
Следующая программа иллюстрирует использование функций _moveto(), _lineto() и __rectangle():
#include <conio.h> #include <stdlib.h> #include <stdio.h> #include <graph.h>
// макроопределение, ранжирующее величину, возвращаемую // генератором случайных чисел (rand) в интервале от 0 // до max
#define random(max) (rand() % (int)((max)+1))
void main(void) {
short x, y; short color; struct videoconfig vc;
// устанавливаем графический режим с максимальным числом цветов
if(!_setvideomode(_MAXCOLORMODE)) { puts("Видеоадаптер не поддерживает графический режим."); exit(1); }
// получаем информацию о конфигурации видеосистемы и об // установленном режиме работы видеоадаптера
_getvideoconfig(&vc);
while(!kbhit()) {
// устанавливаем произвольный допустимый цвет, который // используется при изображении графических объектов
_setcolor((short)random(vc.numcolors));
// выбираем произвольную точку экрана - (x,y) x = (short)random(vc.numxpixels), y = (short)random(vc.numypixels);
// рисуем закрашенный и незакрашенный прямоугольники
_rectangle(_GFILLINTERIOR, x + 30, y + 40, x, y); _rectangle(_GBORDER, x + 40, y + 30, x, y); }
// ожидаем нажатие на клавиатуру
getch();
// помещаем текущую точку в центр экрана
_moveto(vc.numxpixels/2, vc.numypixels/2);
while(!kbhit()) { _setcolor((short)random(vc.numcolors)); x = (short)random(vc.numxpixels), y = (short)random(vc.numypixels);
// рисуем линию из центра экрана в произвольную точку экрана _lineto(x, y); _moveto(vc.numxpixels/2, vc.numypixels/2); } getch();
// устанавливаем режим видеоадаптера, принятый по умолчанию
_setvideomode(_DEFAULTMODE); }