亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? elipse.bak

?? c compiler with added projects...
?? BAK
字號:
#include <iostream.h>
#include <conio.h>
#include <graphics.h>
#include <stdlib.h>
#include<dos.h>
#include<math.h>
#define ROUND(a) (int)(a+0.5)
#define CIRCLE 1
#define ELIPSE 2
#define FILL 3
#define EXIT 4
#define bool int
#define Color int

//this is list for stack
void FillContiguousSpan(int x, int y, Color bound, Color fill, int *xLeft, int *xRight);
class node{
			int x,y;
			node *next;
			public:
			node(int a,int b){x=a;y=b;}
		   void	setnext(node * a){next = a;}
		   node* getnext(){return next;}
			getx(){return x;}
			gety(){return y;}
};
class stack{
  node *index;
  public:
  stack(){index=NULL;}
  void push(int x,int y);
  bool pop(int *a,int *b);

};

void stack::push(int x,int y)
{
	if(index==NULL){index = new node(x,y);}
	else
	{
	 node *t=new node(x,y);
	 t->setnext(index);
	 index=t;
	}
}

bool stack::pop(int *a,int *b)
{
  if(index==NULL)return 0;
  else
  {
   *a=index->getx();
   *b=index->gety();
   node* t=index;
   index=index->getnext();
   delete t;
   return 1;
  }
}

stack st;

// pixel setter and getter
void SetPixel(int x, int y, int c){putpixel(x,y,c);}
int GetPixel(int x, int y){return getpixel(x,y);}
// this algorithm uses a global stack of pixel coordinates
void pushSeed(int x, int y)
{
 st.push(x,y);
}

bool popSeed(int *x, int *y) // returns false iff stack was empty
{
return st.pop(x,y);

}

// the main routine
void FillSeedsOnStack(Color bound, Color fill)
{
   Color col1, col2;
   int x, y;              // current seed pixel
   int xLeft, xRight;     // current span boundary locations
   int i;

   while (popSeed(&x, &y)) {
	  if (GetPixel(x, y) != bound) {
		 FillContiguousSpan(x, y, bound, fill, &xLeft, &xRight);

		 // single pixel spans handled as a special case in the else clause
		 if (xLeft != xRight) {
			// handle the row above you
			y++;
			for(i=xLeft+1; i<=xRight; i++) {
			   col1 = GetPixel(i-1, y);
			   col2 = GetPixel(i, y);
			   if (col1 != bound && col1 != fill && col2 == bound)
				  pushSeed(i-1, y);
			}
			if (col2 != bound && col2 != fill)
			   pushSeed(xRight, y);

			// handle the row below you
			y -= 2;
			for(i=xLeft+1; i<=xRight; i++) {
			   col1 = GetPixel(i-1, y);
			   col2 = GetPixel(i, y);
			   if (col1 != bound && col1 != fill && col2 == bound)
				  pushSeed(i-1, y);
			}
			if (col2 != bound && col2 != fill)
			   pushSeed(xRight, y);
		 } else {
			col1 = GetPixel(xLeft, y+1);
			col2 = GetPixel(xLeft, y-1);
			if (col1 != fill)
			   pushSeed(xLeft, y+1);
			if (col2 != fill)
			   pushSeed(xLeft, y-1);
		 }

	  } // end if (GetPixel)
   }  // end while (popSeed)
}

// fill pixels to the left and right of the seed pixel until you hit
// boundary pixels.  Return the locations of the leftmost and rightmost
// filled pixels.
void FillContiguousSpan(int x, int y, Color bound, Color fill, int *xLeft, int *xRight)
{
   Color col;
   int i;

   // fill pixels to the right until you reach a boundary pixel
   i = x;
   col = GetPixel(i, y);
   while(col != bound) {
	  SetPixel(i, y, fill);
	  i++;
	  col = GetPixel(i, y);
   }
   *xRight = i-1;

   // fill pixels to the left until you reach a boundary pixel
   i = x-1;
   col = GetPixel(i, y);
   while(col != bound) {
	  SetPixel(i, y, fill);
	  i--;
	  col = GetPixel(i, y);
   }
   *xLeft = i+1;
}

void FloodFill(int x, int y, Color bound, Color fill)
{
   PushSeed(x, y);
   FillSeedsOnStack(bound, fill);
}


//////////////mouse

int MouseInbox(int x,int y,int x1,int y1,int x2,int y2)
{

if(x>=x1&&x<=x2&&y>=y1&&y<=y2)
return 1;
return 0;

}

int chk_mouse(void)
{
	REGS r;
	r.x.ax=0x0000;
	int86(0x33,&r,&r);
	return r.x.ax;
}
						   //mouse function
void show_mouse(void)
{
REGS r;
r.x.ax=0x0001;
int86(0x33,&r,&r);
}
						   //mouse function
void hide_mouse(void)
{
REGS r;
r.x.ax=0x0002;
int86(0x33,&r,&r);
}
						   //mouse function
void get_mouse(int *x1,int *y1)
{
REGS r;
r.x.ax=0x0003;
int86(0x33,&r,&r);
*x1=r.x.cx;
*y1=r.x.dx;
}
						   //mouse function
int mouse_pressed(int btn_no)
{
REGS r;
r.x.ax=0x0005;
r.x.bx=btn_no;
int86(0x33,&r,&r);
return r.x.bx;
}
						   //mouse function
int mouse_released(int btn_no)
{
REGS r;
r.x.ax=0x0006;
r.x.bx=btn_no;
int86(0x33,&r,&r);
return r.x.bx;
}
//////////////////////

void Clear_Drawing_Screen()
{

	setfillstyle(1, BLACK);
	bar(101,0,getmaxx(),getmaxy());

}



void lineBres(int xa,int ya,int xb,int yb)

{
	if(xa>101&&ya>1&&xb>101&&yb>1)
	{

	int dx=abs(xa-xb),dy=abs(ya-yb);
	int p=2*dy-dx;
	int twoDy=2*dy,twoDyDx=2*(dy-dx);
	int x,y,xEnd;

	if(xa>xb)
	{
		x=xb; y=yb; xEnd=xa;
	}
	else
	{
		x=xa;	y=ya;	xEnd=xb;
	}

	putpixel(x,y,1);

	while(x<xEnd)
	{
		x++;
		if(p<0)
		p+=twoDy;
		else
		{
			y++;
			p+=twoDyDx;
		}
		putpixel(x,y,1);
	}
	}

}




void ellipsePlotPoints(float xCenter,float yCenter,float x,float y)

{
		putpixel(xCenter+x,yCenter+y,1);
		putpixel(xCenter-x,yCenter+y,1);
		putpixel(xCenter+x,yCenter-y,1);
		putpixel(xCenter-x,yCenter-y,1);
}


void ellipseMidPoint(float xCenter,float yCenter,float Rx,float Ry)

{


	{
	float Rx2=Rx*Rx;
	float Ry2=Ry*Ry;
	float twoRx2=2*Rx2;
	float twoRy2=2*Ry2;
	float p;
	float x=0;
	float y=Ry;
	float px=0;
	float py=twoRx2*y;

   ellipsePlotPoints(xCenter,yCenter,x,y);

	p = ROUND((Ry2-Rx2*Ry)+(0.25 * Rx2));

	while(px<py)
	{
		x++;
		px+=twoRy2;
	if(p<0)
		p+=Ry2+px;
	else
	{
		y--;
		py-=twoRx2;
		p+=Ry2+px-py;
	}

		ellipsePlotPoints(xCenter,yCenter,x,y);
	}

p=ROUND(Ry2*(x+0.5)*(x+0.5)+Rx2*(y-1)*(y-1)-Rx2*Ry2);

while(y>0)
{
	y--;
	py-=twoRx2;

	if(p>0)
	   p+=Rx2-py;
	else
	{
		x++;
		px+=twoRy2;
		p+=Rx2-py+px;
	}

ellipsePlotPoints(xCenter,yCenter,x,y);
}
}
}


void CirclePlotPoints(int xCenter,int yCenter,int x,int y)
{
	putpixel(xCenter+x,yCenter+y,WHITE);
	putpixel(xCenter-x,yCenter+y,WHITE);
	putpixel(xCenter+x,yCenter-y,WHITE);
	putpixel(xCenter-x,yCenter-y,WHITE);
	putpixel(xCenter+y,yCenter+x,WHITE);
	putpixel(xCenter-y,yCenter+x,WHITE);
	putpixel(xCenter+y,yCenter-x,WHITE);
	putpixel(xCenter-y,yCenter-x,WHITE);
}

void CircleMidpoint(int xCenter, int yCenter, int radius)
{
int x=0;
int y = radius;
int p=1-radius;

CirclePlotPoints(xCenter,yCenter,x,y);

	while(x<y)
	{
		x++;
		if(p<0)
			p+=2*x+1;
		else
		{
			y--;
			p+=2*(x-y)+1;
		}

	CirclePlotPoints(xCenter,yCenter,x,y);
//	delay(1000);

	}

}

void InterFace()

{

settextstyle(1, HORIZ_DIR , 2);

bar(90,1,100,getmaxy());
setcolor(1);
bar(10,120,80,150);
outtextxy(20,120,"Circle");
bar(10,160,80,190);
outtextxy(20,160,"Elipse");
bar(10,200,80,230);
outtextxy(20,200,"Line");
bar(10,240,80,270);
outtextxy(20,240,"Clear");
bar(10,280,80,310);
outtextxy(20,280,"Exit");
}

void main()
{
int a=DETECT,b;
int x=0,y=0,x1=10,y1=10,x2=0,y2=0,dif_x=0,dif_y=0;
int WhichShape=0;
initgraph(&a,&b,"c:\\tc\\bgi");
chk_mouse();
show_mouse();
InterFace();

while(!kbhit())

{
	if(mouse_pressed(0))
	  {
			get_mouse(&x1,&y1);
			while(!mouse_released(0))
			get_mouse(&x2,&y2);
	 }
			if(x1<0)x1=2;
			if(y1<0)y1=2;

	   //	if(x1>101&&y1>1&&x2<101&&y2<1)
		//{
			if(MouseInbox(x2,y2,10,120,80,150))
			{
				WhichShape=CIRCLE;
				Clear_Drawing_Screen();
			}
			else if(MouseInbox(x2,y2,10,160,80,190))
			{
				Clear_Drawing_Screen();
				WhichShape=ELIPSE;
			}
			else if(MouseInbox(x2,y2,10,200,80,230))
			{
				WhichShape=LINE;
				Clear_Drawing_Screen();
			}
			else if(MouseInbox(x2,y2,10,240,80,270))
			{
				Clear_Drawing_Screen();
			}

			else if(MouseInbox(x2,y2,10,280,80,310))
				exit(0);


		else if(!(MouseInbox(x2,y2,0,0,101,479))&&
			!(MouseInbox(x1,y1,0,0,101,479)))
		{


		x=(x1+x2)/2;
		y=(y1+y2)/2;
		dif_x=abs(x2-x);
		dif_y=abs(y2-y);

		switch (WhichShape)
			{
				case CIRCLE:
								{
								CircleMidpoint(x,y,dif_x);
								break;
								}

				case ELIPSE:
								//if(x1>100&&y1>1&&x2<101&&y2<1)
								{
								ellipseMidPoint(x,y,dif_x,dif_y);
								break;
								}
				case LINE:
								//if(x1>101&&y1>1&&x2<101&&y2<1)
								lineBres(x1,y1,x2,y2);
								break;
			}//end switch

		}//end if

	}


}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成精品久久久久| 亚洲一区电影777| 激情五月婷婷综合| 欧美国产日产图区| 欧美色网一区二区| 一区二区高清免费观看影视大全| 国产乱子轮精品视频| 亚洲男女毛片无遮挡| 精品视频色一区| 日韩精品久久理论片| 日韩精品一区二区三区视频在线观看| 亚洲一区二区高清| 久久天堂av综合合色蜜桃网| 成人妖精视频yjsp地址| 亚洲成人av电影在线| 2021久久国产精品不只是精品| 成人激情av网| 麻豆视频一区二区| 亚洲美女淫视频| 久久精品欧美日韩| 欧美日韩视频第一区| 成人精品在线视频观看| 日韩国产成人精品| 亚洲一区二区偷拍精品| 国产精品久久久久一区| 精品日韩在线观看| 国产大陆亚洲精品国产| 日本va欧美va欧美va精品| 亚洲国产欧美在线人成| 国产精品亲子伦对白| 2017欧美狠狠色| 欧美日精品一区视频| 欧美伊人久久久久久久久影院| 9久草视频在线视频精品| 九九视频精品免费| 国产美女视频91| 美女视频黄免费的久久| 韩国成人在线视频| 亚洲国产成人va在线观看天堂| 2023国产精品视频| 国产精品情趣视频| 国产丝袜欧美中文另类| 中文字幕欧美激情一区| 一区二区三区四区乱视频| 偷拍一区二区三区四区| 国产精品羞羞答答xxdd| 99综合电影在线视频| 精品欧美一区二区在线观看| 亚洲男人的天堂一区二区| 久久福利资源站| 成人精品电影在线观看| 欧美本精品男人aⅴ天堂| 亚洲特黄一级片| 国产精品一区在线观看你懂的| 欧美精品久久99| 综合电影一区二区三区| 国产美女一区二区| 精品久久久久一区| 日本怡春院一区二区| 欧美亚洲尤物久久| 亚洲一区二区三区四区在线 | 欧美丝袜丝交足nylons图片| 久久久国产精华| 国产在线精品不卡| 欧美精品一区二区蜜臀亚洲| 日韩国产精品久久| 欧美日韩国产精选| 亚洲欧美日韩电影| 国产乱子伦视频一区二区三区 | 天堂久久一区二区三区| 亚洲图片另类小说| 日日欢夜夜爽一区| 国产精品原创巨作av| 欧美图区在线视频| 中文字幕一区二区三| 免费观看一级欧美片| 欧美日韩久久久久久| 国产精品伦理在线| 成人性视频免费网站| ww亚洲ww在线观看国产| 国产黄色成人av| 久久综合视频网| 欧美aa在线视频| 8v天堂国产在线一区二区| 一区二区三区国产| 欧美乱妇一区二区三区不卡视频| 日本不卡视频一二三区| 中文字幕不卡的av| 日韩欧美卡一卡二| 日本欧美韩国一区三区| 精品久久久久久最新网址| 国产a区久久久| 国产精品区一区二区三| 成人国产一区二区三区精品| 26uuu精品一区二区三区四区在线| 国产大陆精品国产| 中文字幕第一页久久| 91丝袜呻吟高潮美腿白嫩在线观看| 国产精品久久久久久亚洲毛片| 色婷婷av一区| 99久久精品免费看| 国产成人福利片| 国产一区啦啦啦在线观看| 午夜精品久久一牛影视| 亚洲黄色小视频| 国产精品久久久久一区二区三区 | 最新不卡av在线| 亚洲精品成人悠悠色影视| 国产精品理论片在线观看| 国产精品久久毛片a| 国产精品福利在线播放| 欧美精品一区二区三区视频| 在线综合视频播放| 欧美大白屁股肥臀xxxxxx| 制服丝袜日韩国产| 宅男噜噜噜66一区二区66| 91精品婷婷国产综合久久竹菊| 制服.丝袜.亚洲.中文.综合| 欧美日韩国产大片| 精品国产一区二区三区不卡| 久久一区二区三区国产精品| 日本一区二区三区四区| www国产成人免费观看视频 深夜成人网| 欧美一区二区三区在线视频| 国产区在线观看成人精品| 中文字幕免费一区| 国产精品另类一区| 亚洲精品videosex极品| 蜜臀av一区二区| 在线视频一区二区三| 欧美日韩在线直播| 一区二区三区免费在线观看| 亚洲一区二区精品视频| 美女视频一区二区| 国产成人在线免费观看| 色av成人天堂桃色av| 6080亚洲精品一区二区| 国产精品私人自拍| 国产美女av一区二区三区| 欧美日韩在线观看一区二区 | 麻豆精品久久精品色综合| 懂色av噜噜一区二区三区av| 日韩欧美在线网站| 亚洲国产色一区| 91蜜桃在线免费视频| 国产日韩精品一区| 国产麻豆视频一区二区| 精品黑人一区二区三区久久 | 日韩欧美成人一区二区| 亚洲mv大片欧洲mv大片精品| 东方欧美亚洲色图在线| 91精品国产色综合久久ai换脸| 国产精品人人做人人爽人人添| 久久97超碰色| 国产欧美精品一区二区色综合| 国产.欧美.日韩| 18成人在线观看| 色婷婷国产精品久久包臀| 亚洲午夜私人影院| 欧美一区二区播放| 韩国三级在线一区| 国产精品久久三| 色偷偷久久一区二区三区| 亚洲午夜在线视频| 日韩女优电影在线观看| 国产精品一区在线观看你懂的| 国产欧美日韩三级| 欧美日韩国产小视频在线观看| 天天综合天天做天天综合| 欧美大片日本大片免费观看| 成人性生交大合| 激情图片小说一区| 日韩美女啊v在线免费观看| 欧美人狂配大交3d怪物一区| 国产成人在线视频播放| 亚洲成av人片在www色猫咪| 国产女人aaa级久久久级| 欧美日韩精品高清| 91免费版在线| 国产成人在线看| 国内精品第一页| 日产国产高清一区二区三区| 一区二区三区欧美在线观看| 日本一区二区综合亚洲| 日韩精品一区二区三区视频播放 | 国产99久久久久| 国产美女精品在线| 日韩激情中文字幕| 亚洲一区二区视频在线观看| 亚洲欧洲精品一区二区三区不卡| 久久日韩精品一区二区五区| 7777精品伊人久久久大香线蕉经典版下载 | 成人免费高清在线| 美女视频黄a大片欧美| 日本欧美一区二区三区| 蜜桃av一区二区| 丁香婷婷综合激情五月色| 国产一区在线看| 91首页免费视频| 99久久夜色精品国产网站|