熟悉地图的大侠帮我看看,多谢!!!

Csharp 2004-03-28 02:02:48
我用四色验证得出来的配色方案有很多种,
别人要求选择一种较好的配色方案,
谁有自动选择最好配色方案的源码?
多谢!!!
...全文
35 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fkfhhfh 2004-03-31
  • 打赏
  • 举报
回复
种子填色又称边界填色(Boundary Filling)。它的功能是:给出多边形光栅化后的边界位置及边界色代码boundary,以及多边形之内的一点x, y位置,要求将颜色color填满多边形。

通常采用的填法有两种:四邻法(4-connected)和八邻法。四邻法是已知x, y(图2.3.6(a)的黑色象素)是多边形内的一点,据此向上下左右四个方向测试(图2.3.6(a)中打勾的象素)、填色、扩散。四邻法的缺点是有时不能通过狭窄区域,因而不能填满多边形。如图2.3.6(b)所示,左下角方形中的种子(打点的象素)不能扩散到右上角的方形中,因为采用四邻法通不过中间的狭窄区域。八邻法是已知x, y(图2.3.6 (c)中黑色的象素)为多边形内的一点,即种子,据此可向周围的八个方向(图2.3.6(c)中打勾的象素)测试、填色、扩散。八邻法的缺点是有时要填出多边形的边界。如图2.3.6(d)所示的边界,按八邻法就会将色彩涂出多边形。由于填不满往往比涂出更易于补救,因此四邻法比八邻法用的更普通。

四邻法种子填色基本程序如程序2.3.2所示。这种程序书写简洁,但运行效率不高,因为包含有多余的判断。在它的基础上可以写出各种改进的算法[8]。

void seed_filling (x, y, fill_color, boundary_color)

int x, y, fill_color, boundary_color;

{

int c;

c=inquire_color(x, y);

if((c< > boundary_color) && (c< > fill_color))

{

set_pixel(x, y, fill_color);

seed_filling(x+1, y, fill_color, boundary_color);

seed_filling(x-1, y, fill_color, boundary_color);

seed_filling(x, y+1, fill_color, boundary_color);

seed_filling(x, y-1, fill_color, boundary_color);

}

}

 

程序2.3.2 四邻法种子填色程序

wangxinqwe 2004-03-30
  • 打赏
  • 举报
回复
up
free1688 2004-03-30
  • 打赏
  • 举报
回复
详细点好吗
3echo 2004-03-28
  • 打赏
  • 举报
回复
我也不知道 请告诉我。
klbt 2004-03-28
  • 打赏
  • 举报
回复
较好的配色方案?什么叫较好,说不清楚

2,142

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧