Пример. Функция рисует на экране закрашенный ромб с заданными параметрами, если весь ромб умещается на экран (при этом результат функции равен 1) или возвращает признак ошибки (число 0).
Решение.
//**********************************************
// ROMB — рисование ромба в заданной позиции
// (x,y) — координаты центра ромба
// a, b — ширина и высота ромба
// color, colorFill — цвета границы и заливки
// Возвращает 1, если операция выполнена, и 0 если
// ромб выходит за пределы экрана
//**********************************************
int Romb ( int x, int y, int a, int b, int color,
int colorFill )
{
if ( (x < a) || (x > 640-a) || (y < a) || (y > 480-b) )
return 0;
//------------------------------------
setcolor ( color );
line ( x-a, y, x, y-b ); line ( x-a, y, x, y+b );
line ( x+a, y, x, y-b ); line ( x+a, y, x, y+b );
setfillstyle ( SOLID_FILL, colorFill );
floodfill ( x, y, color );
return 1;
}
if ( (x < a) || (x > 640-a) || (y < a) || (y > 480-b) )