// 掃瞄線填充,將可執行檔案刪除
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
int wwidth, wheight;
const
double pi = acos(-1.0);
typedef
struct
point;
typedef
struct
rgb;
typedef
struct edge
edge;
edge et[100];
typedef
struct
line;
line line[10];
bool cmp(edge i, edge j)
void mydraw(float pos[2], float length, float theta, rgb rgb)
glend();
}void etbuild()
else
edge *tmp = new edge();
tmp -> ymax = line[i].y2;
tmp -> x = line[i].x1;
tmp -> dx = line[i].dx;
tmp -> nxtedge = null;
tmpl -> nxtedge = tmp;}}
else
}}void linescanfill()
tmpa -> nxtedge = tmp;
}// 刪除掃完的線段
edge *tmpb = edge;
int flag = 0;
while (tmpb -> nxtedge != null)
}if(flag) break;
tmpb = tmpb -> nxtedge;
}// 對aet中的元素提取出來並進行排序,一對一對的畫出來
edge nedge[10];
int idx = 0;
edge *tmpc = edge;
while (tmpc -> nxtedge != null)
cout
<< "idx "
<< idx << endl;
if(idx % 2 == 1) continue;
sort(nedge, nedge + idx, cmp);
for(int j = 0; j < idx; j += 2)
cout
<< endl;
// cout << "idx " << idx << endl;
// 對列中的所有節點的x值改變
edge *tmpd = edge;
while(tmpd -> nxtedge != null)
}}void swap(int &x, int &y)
void swapline()
line[i].dx = (line[i].x1 - line[i].x2) * 1.0 / (line[i].y1 - line[i].y2);
line[i].id = i;
}}void display()
; rgb rgb = ;
mydraw(pcenter, 25.0, 0, rgb);
swapline(); // 交換線的兩個端點,使較小的在下面
etbuild();
linescanfill();
// for(int i = 0; i < 10; i++)
// // 測試10條邊
// for (int i = 0; i < 100; i++)
// cout << endl;
// // cout << dep << endl;
// }
// }
glflush();
// sleep(5);
}void myreshape(glsizei w, glsizei h)
int main(int argc, char* argv) //main(int argc, char **argv)
寒江雪 區域填充演算法 掃瞄線
區域填充遞迴演算法已經領教過了。記憶體消耗大,時間效率低,經典的深搜思想。為了解決這個問題,於是有人提出了種子填充掃瞄線演算法。其實就是深搜不行,換寬搜 bfs 該演算法假設已知其中乙個畫素點,然後從這個畫素點出發,去尋找周圍可以著色的點。這個已知點,我們稱其為種子點。每一輪著色之後,記錄下著色的區...
區域填充之掃瞄線演算法
區域的填充可以根據區域的填充,採用不同的填充演算法,而其中有掃瞄線類演算法和種子填充演算法。這裡,先介紹掃瞄線類演算法之有序邊表的掃瞄線演算法。其他什麼種子填充 邊界標誌演算法 4連通區域的遞迴演算法 8連通區域的遞迴演算法 掃瞄線種子填充演算法比較簡單。其實有序邊表其實領會了也好理解,關鍵是將思想...
c 實現掃瞄線種子填充演算法
今天來介紹一種利用堆疊實現的填充演算法,這種演算法相比於直接使用遞迴實現的填充演算法 如內點表示的四連通種子填充演算法 來說,它需要的堆疊大小不需要那麼龐大,下面是在mfc中實現方法。在任意不間斷區間 一條掃瞄線上的一組相鄰畫素 中,只取乙個種子畫素,填充當前掃瞄線上的該段區間,然後確定與這一段相鄰...