今天用JAVA写一个封闭图形的填充,
我采用种子填充算法,
/**
*@param x 初始点x坐标
*@param y 初始点y坐标
*@param ccolor 填充颜色
*@param bcolor 初始点颜色
*@param image 图形
*/
public void setColor(int x,int y,Color ccolor,Color bcolor,java.awt.image.BufferedImage image){
ArrayList list=new ArrayList();//边界保存,保存下一次要处理的
//装入原始点
list.add(x);
list.add(y);
while(list.size()!=0){
//填充边界颜色
for(int i=0;i
//if(image.getRGB(list.get(i),list.get(i+1))!=ccolor.getRGB())
image.setRGB(list.get(i),list.get(i+1),ccolor.getRGB());
}
int size=list.size();
int byLength=0;
while(size>0){
int tempx,tempy;
tempx=list.get(0);
tempy=list.get(1);
if(tempx>0){
if(image.getRGB(tempx-1, tempy)==bcolor.getRGB()){//取左边点
list.add(tempx-1);
list.add(tempy);
byLength++;
//System.out.println("("+(tempx-1)+","+tempy+")");
}
}
if(tempy>0){
if(image.getRGB(tempx, tempy-1)==bcolor.getRGB()){//取上边点
list.add(tempx);
list.add(tempy-1);
byLength++;
//System.out.println("("+tempx+","+(tempy-1)+")");
}
}
if(tempx
if(image.getRGB(tempx+1,tempy)==bcolor.getRGB()){//取右边点
list.add(tempx+1);
list.add(tempy);
byLength++;
//System.out.println("("+(tempx+1)+","+tempy+")");
}
}
if(tempy
if(image.getRGB(tempx, tempy+1)==bcolor.getRGB()){//取左边点
list.add(tempx);
list.add(tempy+1);
byLength++;
//System.out.println("("+tempx+","+(tempy+1)+")");
}
}
if(byLength==0)return;
list.remove(0);
list.remove(0);
size-=2;
}
if(byLength==0)break;
}
}
//运算速度太慢了.
//不知道...windows那个画图的填充是怎么实现的,觉得它的速度不错.
分享到:
相关推荐
51jobduoyehtml爬虫程序代码QZQ2
白色大气风格的商务英语学习培训网站模板.zip
锡林郭勒市五险一金办事指南
警务处内务规定
白色扁平化风格的设计创业公司模板下载.zip
白色大气风格的土建设计公司模板下载.zip
白色大气风格的响应式CSS3模板下载.zip
白色大气风格的个人简历网页模板下载.zip
白色调简洁的咨询公司整站模板下载.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
Origin教程008:热图所需练习数据
白色扁平化风格的企业创意联系方式模板下载.zip
白色大气风格的欧美穿衣风格网站模板下载.zip
白色干净大气的企业网站模板下载.zip
内容概要:本文介绍了一段简单的Python代码,用于在控制台中输出一棵带有装饰的圣诞树。具体介绍了代码结构与逻辑,包括如何计算并输出树形的各层,如何加入装饰元素以及打印树干。还提供了示例装饰字典,允许用户自定义圣诞树装饰位置。 适用人群:所有对Python编程有一定了解的程序员,尤其是想要学习控制台图形输出的开发者。 使用场景及目标:适用于想要掌握如何使用Python代码创建控制台艺术,特别是对于想要增加节日氛围的小项目。目标是帮助开发者理解和实现基本的字符串操作与格式化技巧,同时享受创造乐趣。 其他说明:本示例不仅有助于初学者理解基本的字符串处理和循环机制,而且还能激发学习者的编程兴趣,通过调整装饰物的位置和树的大小,可以让输出更加个性化和丰富。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色大气风格响应式通用后台管理网站模板.zip
白色风格的广告设计公司网站模板下载.rar
2008-2020年各省技术服务水平相关指标数据 1.时间:2008-2020年 2.指标:行政区划代码、地区、年份、信息传输、软件和信息技术服务业城镇单位就业人员(万人)、软件业务收入(万元)、高技术产品出口额占商品出口额比重(%) 3.范围:31省 4.来源:科技年鉴、国家统计J
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;