С для профессиональных программистов



         

Сборка подпрограмм - часть 2


- закрашивать окружности;

- выбирать цвет;

- выбирать палитру;

- устанавливать скорость изменения параметров;

- сохранять графические изображения;

- загружать графические изображения;

- вращать объекты вокруг любой точки;

- копировать и пересылать графические изображения.

Приведем ниже текст главной программы :

main()

union k

char c[2];

int i;

 key ;

int x=10, y=10; /* текущая позиция экрана */

int cc=2;   /* текущий цвет */

int on_flag=1; /* признак использования карандаша */

int pal_num=1; /* номер палитры */

/* конечная точка определения линий,

прямоугольников, окружностей */

int startx=0, starty=0, endx=0, endy=0;

int first_point=1;

int inc=1; /* шаг пересылки */

int sides=0; /* количество сторон выбранного объекта */

int i;

mode(4); /* переключатель режима CGA/EGA */

palette(0); /* палитра 0 */

xhairs(x, y); /* указатель курсора */

do

key.i = bioskey(0);

xhairs(x, y); /* графический курсор */

if(!key.c[0]) switch(key.c[1])

case 75: /* влево */

if(on_flag) line(x, y, x, y-inc, cc);

y -= inc;

break;

case 77: /* вправо */

if(on_flag) line(x, y, x, y+inc, cc);

y += inc;

break;

case 72: /* вверх */

if(on_flag) line(x, y, x-inc, y, cc);

x -= inc;

break;

case 80: /* вниз */

if(on_flag) line(x, y, x+inc, y, cc);

x += inc;

break;

case 71: /* вверх и влево */

if(on_flag) line(x, y, x-inc, y-inc, cc);

x -= inc;

y -= inc;

break;

case 73: /* вверх и вправо */

if(on_flag) line(x, y, x-inc, y+inc, cc);

x -= inc;

y += inc;

break;

case 79: /* вниз и влево */

if(on_flag) line(x, y, x+inc, y-inc, cc);

x += inc;

y -= inc;

break;

case 81: /* вниз и вправо */

if(on_flag) line(x, y, x+inc, y+inc, cc);

x += inc;

y += inc;

break;

case 59: /* F1 - медленно */                                                           inc=1;

break;

case 60: /* F2 - быстро   */

inc=5;

break;

else switch(tolower(key.c[0]))

case 'o': /* переключение шаблона */

on_flag = !on_flag;

break;

case '1': cc=1; /* цвет 1 */




Содержание  Назад  Вперед