Пример. Функция  рисует  на  экране  закрашенный ромб  с  заданными  параметрами,  если  весь  ромб  умещается  на  экран  (при  этом  результат функции равен 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;

}


2009-12-19 • Просмотров [ 2670 ]