Загрузка...

Функция, рисующая антену


void antena(int x1,int y1,int x2,int y2){

switch(pozition(x1,y1,x2,y2)){

case 1:

if(x2>x1){

y2=y1;

line(x1,y1,x2,y2);

line(x2-6,y2,x2,y2-6);

line(x2-6,y2,x2,y2+6);

}

if(x2<x1){

y2=y1;

line(x1,y1,x2,y2);

line(x2+6,y2,x2,y2+6);

line(x2+6,y2,x2,y2-6);

}

break;

case 2:

if(y1<y2){

x2=x1;

line(x1,y1,x2,y2);

line(x2,y2-6,x2+6,y2);

line(x2,y2-6,x2-6,y2);

}

if(y1>y2){

x2=x1;

line(x1,y1,x2,y2);

line(x2,y2+6,x2-6,y2);

line(x2,y2+6,x2+6,y2);

}

break;

case 3:

if(x2>x1){

y2=y1-(x2-x1);

line(x1,y1,x2,y2);

line(x2-5,y2+5,x2-5,y2-5);

line(x2-5,y2+5,x2+5,y2+5);

}

if(x2<x1){

y2=y1+(x1-x2);

line(x1,y1,x2,y2);

line(x2+5,y2-5,x2+5,y2+5);

line(x2+5,y2-5,x2-5,y2-5);

}

break;

case 4:

if(x2>x1){

y2=y1+(x2-x1);

line(x1,y1,x2,y2);

line(x2-5,y2-5,x2-5,y2+5);

line(x2-5,y2-5,x2+5,y2-5);

}

if(x2<x1){

y2=y1-(x1-x2);

line(x1,y1,x2,y2);

line(x2+5,y2+5,x2+5,y2-5);

line(x2+5,y2+5,x2-5,y2+5);

}

break;

}

}

// Функция, рисующая зажим

void zazhim(int x1,int y1,int x2,int y2){

switch(pozition(x1,y1,x2,y2)){

case 1:

if(x2>x1){

y2=y1;

line(x1,y1,x2-2,y2);

circle(x2,y2,2);

}

if(x2<x1){

y2=y1;

line(x2+2,y2,x1,y1);

circle(x2,y2,2);

}

break;

case 2:

if(y1<y2){

x2=x1;

line(x1,y1,x2,y2-2);

circle(x2,y2,2);

}

if(y1>y2){

x2=x1;

line(x1,y1,x2,y2+2);

circle(x2,y2,2);

}

break;

case 3:

if(x2>x1){

y2=y1-(x2-x1);

line(x1,y1,x2-1,y2+1);

circle(x2,y2,2);

}

if(x2<x1){

y2=y1+(x1-x2);

line(x1,y1,x2+1,y2-1);

circle(x2,y2,2);

}

break;

case 4:

if(x2>x1){

y2=y1+(x2-x1);

line(x1,y1,x2-1,y2-1);

circle(x2,y2,2);

}

if(x2<x1){

y2=y1-(x1-x2);

line(x1,y1,x2+1,y2+1);

circle(x2,y2,2);

}

break;

}

}

// Функция, рисующая зажим

void kluch(int x1,int y1,int x2,int y2){

int x3,y3;

switch(pozition(x1,y1,x2,y2)){

case 1:

if(x2>x1){

y2=y1;

x3=x1+(x2-x1)/2;

line(x1,y1,x3-10,y1);

line(x3+12,y1,x2,y2);

line(x3-10,y1,x3+10,y2-10);

}

if(x2<x1){

x3=x2+(x1-x2)/2;

y2=y1;

line(x2,y2,x3-10,y1);

line(x3+12,y2,x1,y1);

line(x3-10,y2,x3+10,y1-10);

}

break;

case 2:

if(y1<y2){

y3=y1+(y2-y1)/2;

x2=x1;

line(x1,y1,x1,y3-10);

line(x1,y3+12,x2,y2);

line(x1,y3-10,x1-10,y3+10);

}

if(y1>y2){

y3=y2+(y1-y2)/2;

x2=x1;

line(x1,y1,x1,y3+12);

line(x1,y3-10,x2,y2);

line(x1,y3-10,x1+10,y3+10);

}

break;

case 3:

if(x2>x1){

y2=y1-(x2-x1);

x3=x1+(x2-x1)/2;

y3=y1+(y2-y1)/2;

line(x1,y1,x3-5,y3+5);

line(x3+8,y3-8,x2,y2);

line(x3-5,y3+5,x3,y3-14);

}

if(x2<x1){

y2=y1+(x1-x2);

x3=x2+(x1-x2)/2;

y3=y1+(y2-y1)/2;

line(x1,y1,x3+8,y3-8);

line(x3-5,y3+5,x2,y2);

line(x3-5,y3+5,x3,y3-14);

}

break;

case 4:

if(x2>x1){

y2=y1+(x2-x1);

x3=x1+(x2-x1)/2;

y3=y1+(y2-y1)/2;

line(x1,y1,x3-5,y3-5);

line(x3+8,y3+8,x2,y2);

line(x3-5,y3-5,x3+14,y3);

}

if(x2<x1){

y2=y1-(x1-x2);

x3=x2+(x1-x2)/2;

y3=y2+(y1-y2)/2;

line(x1,y1,x3+8,y3+8);

line(x3-5,y3-5,x2,y2);

line(x3-5,y3-5,x3+14,y3);

}

break;

}

}

// Функция, рисующая провод

void provod(int x1,int y1,int x2,int y2){

switch(pozition(x1,y1,x2,y2)){

case 1:

if(x2>x1){

y2=y1;

line(x1,y1,x2,y2);

}

if(x2<x1){

y2=y1;

line(x2,y2,x1,y1);

}

break;

case 2:

if(y1<y2){

x2=x1;

line(x1,y1,x2,y2);

}

if(y1>y2){

x2=x1;

line(x1,y1,x2,y2);

}

break;

case 3:

if(x2>x1){

y2=y1-(x2-x1);

line(x1,y1,x2,y2);

}

if(x2<x1){

y2=y1+(x1-x2);

line(x1,y1,x2,y2);

}

break;

case 4:

if(x2>x1){

y2=y1+(x2-x1);

line(x1,y1,x2,y2);

}

if(x2<x1){

y2=y1-(x1-x2);

line(x1,y1,x2,y2);

}

break;

}

}

// Функция, рисующая транзистор

void tranzistor(int x1,int y1,int x2,int y2,int kn_add){

switch(pozition(x1,y1,x2,y2)){

case 1:

if(x2>x1){

y2=y1;

line(x1,y1,x2-4,y2);

line(x2-4,y2-6,x2-4,y2+6);

line(x2-4,y2-3,x2+6,y2-8);

line(x2-4,y2+3,x2+6,y2+8);

switch(kn_add){

case 161:

line(x2+6,y2-8,x2,y2-6);

line(x2+6,y2-8,x2+2,y2-4);

putpixel(x2+2,y2-5,15);

circle(x2,y2,10);

break;

case 162:

line(x2-4,y2-3,x2+1,y2-7);

line(x2-4,y2-3,x2+2,y2-5);

putpixel(x2+1,y2-6,15);

putpixel(x2-2,y2-3,15);

putpixel(x2+3,y2-5,15);

circle(x2,y2,10);

break;

case 163:

line(x2-4,y2+3,x2+1,y2+7);

putpixel(x2+3,y2+5,15);

putpixel(x2+2,y2+5,15);

putpixel(x2,y2+4,15);

putpixel(x2+1,y2+5,15);

circle(x2,y2,10);

break;

case 164:

line(x2+6,y2+8,x2+1,y2+4);

putpixel(x2+1,y2+5,15);

putpixel(x2-1,y2+6,15);

putpixel(x2,y2+6,15);

circle(x2,y2,10);

break;

}

}

if(x2<x1){

y2=y1;

line(x1,y1,x2+4,y2);

line(x2+4,y2+6,x2+4,y2-6);

line(x2+4,y2+3,x2-6,y2+8);

line(x2+4,y2-3,x2-6,y2-8);

switch(kn_add){

case 161:

line(x2+4,y2+3,x2-1,y2+7);

line(x2+4,y2+3,x2-2,y2+5);

putpixel(x2-1,y2+6,15);

putpixel(x2+2,y2+3,15);

putpixel(x2-3,y2+5,15);

circle(x2,y2,10);

break;

case 162:

line(x2-6,y2+8,x2,y2+6);

putpixel(x2-2,y2+5,15);

putpixel(x2-3,y2+6,15);

putpixel(x2-4,y2+8,15);

putpixel(x2-3,y2+8,15);

putpixel(x2-2,y2+8,15);

putpixel(x2-2,y2+7,15);

putpixel(x2-1,y2+7,15);

putpixel(x2,y2+7,15);

circle(x2,y2,10);

break;

case 163:

line(x2-6,y2-8,x2-1,y2-4);

putpixel(x2-1,y2-5,15);

putpixel(x2+1,y2-6,15);

putpixel(x2,y2-6,15);

putpixel(x2+1,y2-6,15);

putpixel(x2-1,y2-3,15);

circle(x2,y2,10);

break;

case 164:

line(x2+4,y2-3,x2-1,y2-7);

putpixel(x2-3,y2-5,15);

putpixel(x2-2,y2-5,15);

putpixel(x2,y2-4,15);

putpixel(x2-1,y2-5,15);

circle(x2,y2,10);

break;

}

}

break;

case 2:

if(y1<y2){

x2=x1;

line(x1,y1,x2,y2-4);

line(x2-6,y2-4,x2+6,y2-4);

line(x2-3,y2-4,x2-8,y2+6);

line(x2+3,y2-4,x2+8,y2+6);

switch(kn_add){

case 161:

putpixel(x2-7,y2+1,15);

putpixel(x2-4,y2+3,15);

putpixel(x2-4,y2+2,15);

putpixel(x2-4,y2+1,15);

putpixel(x2-4,y2,15);

putpixel(x2-5,y2+2,15);

circle(x2,y2,10);

break;

case 162:

line(x2-8,y2+6,x2-4,y2+1);

putpixel(x2-3,y2+1,15);

putpixel(x2-5,y2+1,15);

putpixel(x2-6,y2,15);

putpixel(x2-6,y2-1,15);

circle(x2,y2,10);

break;

case 163:

line(x2+3,y2-4,x2+7,y2+1);

putpixel(x2+5,y2+3,15);

putpixel(x2+5,y2+2,15);

putpixel(x2+4,y2,15);

putpixel(x2+5,y2+1,15);

circle(x2,y2,10);

break;

case 164:

line(x2+8,y2+6,x2+4,y2+1);

putpixel(x2+5,y2+1,15);

putpixel(x2+6,y2-1,15);

putpixel(x2+6,y2,15);

putpixel(x2+5,y2,15);

putpixel(x2+4,y2,15);

putpixel(x2+3,y2,15);

circle(x2,y2,10);

break;

}

}

if(y1>y2){

x2=x1;

line(x1,y1,x2,y2+4);

line(x2+6,y2+4,x2-6,y2+4);

line(x2+3,y2+4,x2+8,y2-6);

line(x2-3,y2+4,x2-8,y2-6);

switch(kn_add){

case 161:

line(x2+8,y2-6,x2+4,y2-1);

putpixel(x2+3,y2-1,15);

putpixel(x2+5,y2-1,15);

putpixel(x2+6,y2,15);

putpixel(x2+6,y2+1,15);

circle(x2,y2,10);

break;

case 162:

putpixel(x2+7,y2-1,15);

putpixel(x2+4,y2-3,15);

putpixel(x2+4,y2-2,15);

putpixel(x2+4,y2-1,15);

putpixel(x2+4,y2,15);

putpixel(x2+5,y2-2,15);

circle(x2,y2,10);

break;

case 163:

line(x2-8,y2-6,x2-4,y2-1);

putpixel(x2-5,y2-1,15);

putpixel(x2-6,y2+1,15);

putpixel(x2-6,y2,15);

putpixel(x2-5,y2,15);

putpixel(x2-4,y2,15);

putpixel(x2-3,y2,15);

circle(x2,y2,10);

break;

case 164:

line(x2-3,y2+4,x2-7,y2-1);

putpixel(x2-5,y2-3,15);

putpixel(x2-5,y2-2,15);

putpixel(x2-4,y2,15);

putpixel(x2-5,y2-1,15);

circle(x2,y2,10);

break;

}

}

break;

}

}

//Функция, корректирующая неудачно изображённый элемент

void correct(int x1,int y1,int x2,int y2){

setcolor(1);

mouse_state ms;

if(x1>x2){

if(y1>y2){

i=x1; j=y1;

x1=x2; y1=y2;

x2=i; y2=j;

}

else{

i=x1;

x1=x2;

x2=i;

}

}

else

if((x1<x2)&&(y1>y2)){

j=y1;

y1=y2;

y2=j;

}

rectangle(x1,y1,x2,y2);

cursor_on();

while(1){

if(ms_release(&ms,0)==1){

cursor_off();

for(i=x1;i<=x2;i++)

for(j=y1;j<=y2;j++)

putpixel(i,j,7);

break;

}

if(ms_release(&ms,1)==1){

cursor_off();

setcolor(7);

rectangle(x1,y1,x2,y2);

break;

}

}

setcolor(15);

}

Загрузка...