{fatline=fl;
typeline=tl;
colorline=cl;
typefill=tf;
colorfill=cf;
}
//-----------------Move-----------------------------------------
void Romb::move(int rx, int ry)
{int i;
for (i=0;i<10;i++)
{x[i]=x[i]+rx;
y[i]=y[i]+ry;
}
}
----------------------------------------------------------------------------------------------------
Файл main.cpp
----------------------------------------------------------------------------------------------------
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include "clasromb.cpp"
Romb R;
//--------------Check locatoin on display------------------------
int check1()
{int i,x[9], y[9],n=4;
for (i=1; i<17; i++)
{if (i<9) x[i]=R.Getxy(i);
else y[i-8]=R.Getxy(i);
}
if (0>=x[1+n] || x[3+n]>=getmaxx() || 0>=y[2+n] || y[4+n]>=getmaxy())
return 1;
else return 0;
}
//--------------Check nesting 1 in 2-----------------------------
int check2()
{float S, S1=0, a,b,c,p;
int i,j, flag;
int x[9], y[9],llx,lly;
for (i=1; i<17; i++)
{if (i==9) printf ("\n");
if (i<9) x[i]=R.Getxy(i);
else y[i-8]=R.Getxy(i);
}
llx=R.Get(8);
lly=R.Get(9);
S=llx*lly*2;
flag=0;
//--------------Squares comparison-------------------------------
for (j=1;j<5;j++)
{for (i=5;i<9;i++)
{if (i<8)
{a=sqrt(pow((x[i]-x[i+1]),2)+pow((y[i]-y[i+1]),2));
b=sqrt(pow((x[i]-x[j]),2)+pow((y[i]-y[j]),2));
c=sqrt(pow((x[i+1]-x[j]),2)+pow((y[i+1]-y[j]),2));
}
else
{a=sqrt(pow((x[5]-x[8]),2)+pow((y[5]-y[8]),2));
b=sqrt(pow((x[5]-x[j]),2)+pow((y[5]-y[j]),2));
c=sqrt(pow((x[8]-x[j]),2)+pow((y[8]-y[j]),2));
}
p=(a+b+c)/2;
S1=S1+sqrt(p*(p-a)*(p-b)*(p-c));
}
if (fabs(S1-S)>100) flag=1;
S1=0;
}
return flag;
}
//----------------------------Like Set()------------------
void enter()
{int xo,yo,xoo,yoo,dx1,dx2,dy1,dy2,angle1,angle2,f,c,k;
clrscr();
do{
printf ("Vvedite X0,Y0,diagX,diagY,ugol naklona vnutrennego romba\n");
scanf ("%d%d%d%d%d",&xo,&yo,&dx1,&dy1,&angle1);
printf ("Vvedite X0,Y0,diagX,diagY,ugol naklona vneshnego romba\n");
scanf ("%d%d%d%d%d",&xoo,&yoo,&dx2,&dy2,&angle2);
R.enter(xo, yo, dx1, dy1, angle1, xoo, yoo, dx2, dy2, angle2);
c=check1();
if (c) printf("error: za ekran\n");
k=check2();
if (k) printf("error: ne vlozhenny\n\n");
}while (c==1 || k==1);
}
//---------Graphic options-----------------------
void Goptions()
{int i, fl,tl,cl,tf,cf;
fl=R.Get(11);
tl=R.Get(12);
cl=R.Get(13);
tf=R.Get(14);
cf=R.Get(15);
do{
clrscr();
printf ("LINE:\n 1 - Fat (1 or 3)\n 2 - Type\n 3 - Color\n\nFILL:\n 4 - Type\n 5 - Color\n\n 0 - Back\n");
scanf ("%d",&i);
switch (i)
{case 1: clrscr();printf ("1 or 3\n\n");
scanf ("%d",&fl); break;
case 2: clrscr();printf ("0 - Solid line\n1 - Dotted line\n2 - Center line\n3 - Dashed line\n\n");
scanf ("%d",&tl); break;
case 3: clrscr();printf ("1 - Blue\n2 - Green\n3 - Gray\n4 - Red\n5 - Magenta\n6 - Brown\n7 - LightGray\n8 - DarkGray\n9 - LightBlue\n10 - LightGreen\n11 - LightCyan\n12 - LightRed\n13 - LightMagenta\n14 - Yellow\n15 - White\n\n");
scanf ("%d",&cl); break;
case 4: clrscr();printf ("1 -- Solid fill\n2 -- Line fill -- ||\n3 -- LtSlash -- //\n4 -- Slash -- ///\n5 -- BkSlash -- \\\ \n6 -- LtBkSlash -- \\ \n7 -- Hatch fill -- +\n8 -- XHatch fill -- x\n9 -- InterLeave fill\n10 - Wide Dot fill - ..\n11 - Close Dot fill - ::\n\n");
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.