Пример #1
0
main()
{

   n = ReadPoly( P );
   m = ReadPoly( Q );
   OutputPolygons();
   ConvexIntersect( P, Q, n, m );

   ClosePostscript();
}
Пример #2
0
int main()
{
	Polynomial poly;
	poly = (Polynomial) malloc(sizeof(PolyNode));
	poly->next = NULL;
	//InitPoly(poly);
	ReadPoly(poly);
	Derivate(poly);
	WritePoly(poly);
}
Пример #3
0
int main(int argc, char **argv)
{
	TRANS *T;
	ARGS *A;
	int Nc=0;
	int Np=0;
	int NewT=0, i;
	POS *P;
	int *BR, Nbr;
	if (argc<2) 
	{
        	fprintf(stderr," usage: polytransform <file> [trans 1] [trans 2] ... \n");
        	return 1;
    	}
	T=malloc(argc*sizeof(TRANS));
	A=malloc(argc*sizeof(ARGS));
	i=2;
	while (i<argc)
	{
		if (NewT==0)
		{
			if (strncmp(argv[i],"move",4)==0)
			{
				T[Nc]=MOVE;
				Nc++;
				NewT++;
			}
			if (strncmp(argv[i],"rotate",6)==0)
			{
				T[Nc]=ROT;
				Nc++;
				NewT++;
			}
			else if (strncmp(argv[i],"flipx",5)==0)
			{
				T[Nc]=FLIPX;
				Nc++;
			}
			else if (strncmp(argv[i],"flipy",5)==0)
			{
				T[Nc]=FLIPY;
				Nc++;
			}
			else if (strncmp(argv[i],"scalex",6)==0)
			{
				T[Nc]=SCALEX;
				Nc++;
				NewT++;
			}
			else if (strncmp(argv[i],"scaley",6)==0)
			{
				T[Nc]=SCALEY;
				Nc++;
				NewT++;
			}
			else if (strncmp(argv[i],"scale",5)==0)
			{
				T[Nc]=SCALE;
				Nc++;
				NewT++;
			}
			else if (strncmp(argv[i],"bb_fixR",7)==0)
			{
				T[Nc]=BBFIXR;
				Nc++;
				NewT++;
			} else	if (strncmp(argv[i],"bb",2)==0)
			{
				T[Nc]=BB;
				Nc++;
				NewT++;
			}
				
		}
		else
		{
			if (T[Nc-1]==MOVE)
			{
				if (NewT==1)
				{
					A[Nc-1].P0.x=atof(argv[i]);
					NewT++;
				}
				else
				{
					A[Nc-1].P0.y=atof(argv[i]);
					NewT=0;
				}
			}
			if (T[Nc-1]==ROT)
			{
				if (NewT==1)
				{
					A[Nc-1].P0.x=atof(argv[i]);
					NewT++;
				}
				else if (NewT==2)
				{
					A[Nc-1].P0.y=atof(argv[i]);
					NewT++;
				}
				else if (NewT==3)
				{
					A[Nc-1].f=atof(argv[i]);
					NewT=0;
				}
			}
			if ((T[Nc-1]==SCALE)||(T[Nc-1]==SCALEX)||(T[Nc-1]==SCALEY))
			{
				A[Nc-1].f=atof(argv[i]);
				NewT=0;
			}
			if ((T[Nc-1]==BB)||(T[Nc-1]==BBFIXR))
			{
				if (NewT==1)
				{
					A[Nc-1].P0.x=atof(argv[i]);
					NewT++;
				}
				else if (NewT==2)
				{
					A[Nc-1].P0.y=atof(argv[i]);
					NewT++;
				}
				else if (NewT==3)
				{
					A[Nc-1].P1.x=atof(argv[i]);
					NewT++;
				}
				else
				{
					A[Nc-1].P1.y=atof(argv[i]);
					NewT=0;
				}
			}
		}
		i++;			
	}
	P=ReadPoly(argv[1], &BR, &Nbr, &Np);
	TransForm(P, Np, T, A, Nc);
	PrintPoly(P, Np, BR, Nbr);
	fprintf(stderr,"Poly Length: %e\n", LengthPoly(P, Np, BR, Nbr));
 	free(T);
 	free(A);
 	free(P);
 	free(BR);
}