種子填充演算法(計算機圖形學)
阿新 • • 發佈:2019-02-14
#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>}