实践用四连通边界定义区域的边界填充算法和四向填充漫水算法 用红色填充以下区域:区域顶点为: (10,10),(70,10),(70,40),(60,60),(30,60),(10,10)。#include "Conio.h"#include "graphics.h"#define closegr closegraphvoid initgr(void){ int gd = DETECT, gm = 0; registerbgidriver(EGAVGA_driver); initgraph(&gd, &gm, "");}void boundary_fill_4(int x, int y, int boundary_color,int fill_color){ int current; current = getpixel(x, y); if ( current!=boundary_color && current!=fill_color ) { putpixel(x, y,fill_color); boundary_fill_4(x, y+1, boundary_color, fill_color); /* 上 */ boundary_fill_4(x, y-1, boundary_color, fill_color); /* 下 */ boundary_fill_4(x-1, y, boundary_color, fill_color); /* 左 */ boundary_fill_4(x+1, y, boundary_color, fill_color); /* 右 */ }}int main(void){ int fill_color=4,boundary_color=4; int x1=10,y1=10; int x2=70,y2=10; int x3=70,y3=40; int x4=60,y4=60; int x5=30,y5=60; int x6=10,y6=60; initgr(); boundary_fill_4(x1, y1, boundary_color, fill_color); boundary_fill_4(x2, y2, boundary_color, fill_color); boundary_fill_4(x3, y3, boundary_color, fill_color); boundary_fill_4(x4, y4, boundary_color, fill_color); boundary_fill_4(x5, y5, boundary_color, fill_color); boundary_fill_4(x6, y6, boundary_color, fill_color); getch(); closegr(); return 0;}画不出来.谢谢大家,帮忙看看.
谢谢你呀, 轮廓我画出来了, 但是里面没有填充, 不知道是怎么回事
|