1. 程式人生 > >種子填充演算法(計算機圖形學)

種子填充演算法(計算機圖形學)

#include <graphics.h>
#include <iostream>
using namespace std;


<span style="white-space:pre">	</span>//種子填充演算法四聯通演算法
<span style="white-space:pre">	</span>int BoundaryFill(int x, int y)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">	</span> int c=0;
<span style="white-space:pre">	</span> c=getpixel(x,y);
<span style="white-space:pre">	</span> if(c!=WHITE)
<span style="white-space:pre">	</span> {
<span style="white-space:pre">	</span>  putpixel(x,y,WHITE);
<span style="white-space:pre">	</span> }
<span style="white-space:pre">	</span> if(c==WHITE) 
<span style="white-space:pre">	</span>  return 0;


<span style="white-space:pre">	</span> //為現實效果而延遲時間的空迴圈
<span style="white-space:pre">	</span> for(int i=0;i<1000000;i++);


<span style="white-space:pre">	</span> BoundaryFill(x+1,y);
<span style="white-space:pre">	</span> BoundaryFill(x-1,y);
<span style="white-space:pre">	</span> BoundaryFill(x,y+1);
<span style="white-space:pre">	</span> BoundaryFill(x,y-1);
<span style="white-space:pre">	</span>}


<span style="white-space:pre">	</span>int main()
<span style="white-space:pre">	</span>{


<span style="white-space:pre">		</span> int gdriver=DETECT, gmode;
<span style="white-space:pre">		</span> initgraph(&gdriver,&gmode,"");//根據測試結果初始化圖形介面


<span style="white-space:pre">		</span> int points2[]={325,25,400,50,400,125,350,125,325,40,325,25};
<span style="white-space:pre">		</span> drawpoly(6,points2);
<span style="white-space:pre">		</span> BoundaryFill(350,55);//種子填充演算法


<span style="white-space:pre">		</span> getchar();
<span style="white-space:pre">		</span> closegraph();
 
<span style="white-space:pre">		</span> return 0;
<span style="white-space:pre">	</span>}