掃瞄線填充演算法 指標操作要注意的地方

2021-07-11 13:33:48 字數 2277 閱讀 7457

// 掃瞄線填充,將可執行檔案刪除

#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中實現方法。在任意不間斷區間 一條掃瞄線上的一組相鄰畫素 中,只取乙個種子畫素,填充當前掃瞄線上的該段區間,然後確定與這一段相鄰...