Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_WORKS.doc
Скачиваний:
2
Добавлен:
06.11.2018
Размер:
710.66 Кб
Скачать

4.3. Подпрограммы графических примитивов.

ФАЙЛ SYS_PRIM.H.

[1] /*#########################################*/

[2] /*

[3] Copyright (C) 2008 by A.E.Stefanovich tel. 236-2729, 268-3916.

[4] Moscow State University of Instrument-making and Computer Sciences.

[5] (MGUPI).

[6] Chair TI-1.

*/

[7] /*#########################################*/

[8] /*

[9] File: SYS_PRIM.h

[10] PRIMITIVES

[11] */

[12] /*########################################*/

[13] #ifndef SYS_PRIM_

[14] #define SYS_PRIM_

[15] /*============================= Declarations */

[16] /*---- Elements and devices */

[17] int E

[18] (char *t,int n,int lx,int ly,int dx,int dy,int kx,int ky);

[19] int B

[20] (char *t,int n,int lx,int ly,int dx,int dy,int kx,int ky);

[21] /*---- Primitives */

[22] int RectangleN

[23] (int left_x,int left_y,int right_x,int right_y,int n);

[24] int Rectangle2

[25] (int left_x,int left_y,int right_x,int right_y);

[26] int EllipseN

[27] (int x, int y,int stangle,int endangle,

[28] int x_radius,int y_radius,int n);

[29] int Ellipse2

[30] (int x, int y,int stangle,int endangle,

[31] int x_radius,int y_radius);

[32] /*##################################### SUBPROGRAMS */

[33] /*IIIIIIIIIIIIIIII ЛОГИЧЕСКИЙ ЭЛЕМЕНТ СХЕМЫ */

[34] int E

[35] (char *t,int n,int lx,int ly,int dim_x,int dim_y,

[36] int kx,int ky)

[37] {

[38] /*---- Variable */

[39] char buf_str[80];

[40] /*---- Device */

[41] settextstyle(SMALL_FONT,HORIZ_DIR,4);

[42] setlinestyle(SOLID_LINE,0,NORM_WIDTH);

[43] setcolor(LIGHTGRAY);

[44] if(dim_x<3) dim_x=3;

[45] if(dim_y<3) dim_y=3;

[46] RectangleN(lx*kx,ly*ky,(lx+dim_x)*kx,(ly+dim_y)*ky,2);

[47] setcolor(YELLOW);

[48] settextjustify(RIGHT_TEXT,CENTER_TEXT);

[49] outtextxy((lx+dim_x-1)*kx,(ly+1)*ky,t);

[50] setcolor(WHITE);

[51] itoa(n,buf_str,10);

[52] settextjustify(LEFT_TEXT,CENTER_TEXT);

[53] outtextxy((lx+1)*kx,(ly+dim_y-1)*ky,buf_str);

[54] /*----*/

[55] return 0;

[56] }

[57] /*IIIIIIIIIIIIIIII БЛОК ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ СХЕМЫ */

[58] int B

[59] (char *t,int n,int lx,int ly,int dim_x,int dim_y,

[60] int kx,int ky)

[61] {

[62] /*---- Variable */

[63] char buf_str[80];

[64] /*---- Device */

[65] settextstyle(SMALL_FONT,HORIZ_DIR,4);

[66] setlinestyle(SOLID_LINE,0,NORM_WIDTH);

[67] setfillstyle(SOLID_FILL,LIGHTGRAY);

[68] if(dim_x<3) dim_x=3;

[69] if(dim_y<3) dim_y=3;

[70] bar(lx*kx,ly*ky,(lx+dim_x)*kx,(ly+dim_y)*ky);

[71] setcolor(YELLOW);

[72] rectangle(lx*kx,ly*ky,(lx+dim_x)*kx,(ly+dim_y)*ky);

[73] settextjustify(RIGHT_TEXT,CENTER_TEXT);

[74] outtextxy((lx+dim_x-1)*kx,(ly+1)*ky,t);

[75] setcolor(WHITE);

[76] itoa(n,buf_str,10);

[77] settextjustify(LEFT_TEXT,CENTER_TEXT);

[78] outtextxy((lx+1)*kx,(ly+dim_y-1)*ky,buf_str);

[79] /*----*/

[80] return 0;

[81] }

[82] /*ПРЯМОУГОЛЬНИК С ТОЛЩИНОЙ ЛИНИЙ В N ПИКСЕЛ. */

[83] int RectangleN

[84] (int left_x,int left_y,int right_x,int right_y,int n)

[85] {

[86] int i;

[87] for(i=0;i<n;i++)

[88] {

[89] rectangle

[90] (left_x+i,left_y+i,right_x-i,right_y-i);

[91] if((left_x+i)>=(right_x-i)) break;

[92] if((left_y+i)>=(right_y-i)) break;

[93] }

[94] /*----*/

[95] return 0;

[96] }

[97] /*III ПРЯМОУГОЛЬНИК С ПЕРИМЕТРОМ ИЗ ДВУХ ЛИНИЙ */

[98] int Rectangle2

[99] (int left_x,int left_y,int right_x,int right_y)

[100] {

[101] rectangle

[102] (left_x,left_y,right_x,right_y);

[103] rectangle

[104] (left_x+2,left_y+2,right_x-2,right_y-2);

[105] /*----*/

[106] return 0;

[107] }

[108] /*IIIIIIIIII ЭЛЛИПС С ТОЛЩИНОЙ ЛИНИЙ В N ПИКСЕЛЕЙ */

[109] int EllipseN

[110] (int x, int y,int stangle,int endangle,

[111] int x_radius,int y_radius,int n)

[112] {

[113] int i;

[114] for(i=0;i<n;i++)

[115] {

[116] ellipse

[117] (x,y,stangle,endangle,x_radius-i,y_radius-i);

[118] if(x_radius<=0) break;

[119] if(y_radius<=0) break;

[120] }

[121] /*----*/

[122] return 0;

[123] }

[124] /*IIIIIIIIIIIIIII ЭЛЛИПС С ПЕРИМЕТРОМ ИЗ ДВУХ ЛИНИЙ */

[125] int Ellipse2

[126] (int x, int y,int stangle,int endangle,

[127] int x_radius,int y_radius)

[128] {

[129] ellipse

[130] (x,y,stangle,endangle,x_radius,y_radius);

[131] ellipse

[132] (x,y,stangle,endangle,x_radius-2,y_radius-2);

[133] /*----*/

[134] return 0;

[135] }

[136] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[137] #endif /* SYS_PRIM_ */

[138] /*########################################################*/

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]