Пример #1
0
		void Move(int x_offset, int y_offset) //将圆心坐标平移
		{
				int x1=Getx( );        //存取基类的私有成员
				int y1=Gety( );                  // D
				x1 += x_offset; y1 += y_offset;
				Setxy(x1, y1);                   // E
		}
Пример #2
0
void work(int d){
	int i,j,x;
	double k=(double)(Y1-Y2)/(X1-X2),b=Y1-k*X1,y,ty=Y1;
	g=gcd(abs(X1-X2),abs(Y1-Y2));
	L=abs(X1-X2)/g;
	for (x=X1;x!=X2;x+=d){
		y=k*(x+d)+b;
		j= Y1>Y2 ? Gety(ty,x,-1)-floor(y+1e-8)+1 : Gety(y,x+d,1)-floor(ty+1e-8)+1;
		if (j>=n){
			int x0= d>0 ? x : x-1,y0= Y1>Y2 ? Gety(ty,x,-1) : floor(ty+1e-8);
			for (;n>1;n--) y0+= Y1>Y2 ? -1 : 1;
			printf("%d %d\n",x0,y0);
			return;
		}
		n-=j;
		ty=y;
	}
	printf("no solution\n");
}