java种子填充_种子填充实例运行出问题

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

种子填充实例运行出问题

import java.awt.*;

import java.applet.*;

import java.awt.image.ImageProducer;

import java.awt.image.MemoryImageSource;

import java.util.Stack;

public class scanseed extends Applet {

private static final long serialVersionUID = 1L;

int red=Color.red.getRGB();

int blue=Color.red.getRGB();

int black=Color.red.getRGB();

int  y,ymax,ymin,w=200,h=200;

Image image;

int  pixels[]=new int[w*h];

double x;

double dy,dx;

Point []p=new Point[10];

public void init()

{

p[0] = new Point(15, 15);

p[5] = new Point(145, 35);

p[4] = new Point(145, 95);

p[3] = new Point(115, 115);

p[2] = new Point(65, 115);

p[1] = new Point(15, 75);

p[6] = new Point(85, 65);

p[7]=p[0];

Point q=new Point(4,6);

boundary();

scan(pixels,q,black,blue,red);

ImageProducer ip=new MemoryImageSource(w,h,pixels,0,w);

image=createImage(ip);

}

public void boundary()

{

for(int i=0;i<7;i++)

{

dy=p[i+1].y-p[i].y;

if(dy!=0){

dx=(p[i+1].x-p[i].x)/dy;}

if(dy>0) x=p[i].x;

else  x=p[i+1].x;

ymax=(Math.max(p[i].y,p[i+1].y));

ymin=(Math.min(p[i].y,p[i+1].y));

for(y=ymin+1;y<=ymax;y++)

{

x=x+dx;

if(pixels[y*w+(int)(x+0.5)]==red)

pixels[y*w+(int)(x+0.5)+1]=red;//保证是偶数

else

pixels[y*w+(int)(x+0.5)]=red;

}

}

}

public void scan(int[]pixels,Point point,int old_color,int new_color,int boundary_color) {

int x,y,savex,xright,xleft;

Point p;

Stack stack=new Stack();

stack.push(point);

boolean span_need_fill;

while(!stack.empty()) {

p=(Point)(stack.pop());

x=p.x;

y=p.y;

savex=x;

while(pixels[y*w+x]!=boundary_color) {

pixels[y*w+x]=new_color;

x++;

}

xright=x-1;

x=savex-1;

while(pixels[y*w+x]!=boundary_color) {

pixels[y*w+x]=new_color;

x--;

}

xleft=x+1;

x=xleft;

y=y+1;

while(x<=xright) {

span_need_fill=false;

while(pixels[w*y+x]==old_color&&x<=xright) {

span_need_fill=true;

x++;

}

if(span_need_fill) {

p=new Point(x-1,y);

stack.push(p);

span_need_fill=false;

}

while(pixels[y*w+x]!=old_color&&x<=xright)x++;

}

x=xleft;

y=y-2;

while(x<=xright) {

span_need_fill=false;

while(pixels[w*y+x]==old_color) {

span_need_fill=true;

x++;

}

if(span_need_fill) {

p=new Point(x-1,y);

stack.push(p);

span_need_fill=false;

}

while(pixels[y*w+x]!=old_color&&x<=xright)x++;

}

}

}

public void paint(Graphics g)

{

g.drawImage(image, 0, 0, null);

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mdi悬浮子窗体不超过主窗体边界

//1.设置父窗体(主窗体)的AutoScrollMinSize大于父窗体的Size//例如主窗体(400,400), AutoScrollMinSize(500,500)//2.设置主窗体的IsMdiContainer为true private void Form2_Load(object sender, EventArgs e) {//悬浮窗体 Form3 f3 new Form3();//…

Ubuntu 12.04 root用户登录设置

Ubuntu 12.04默认是不允许root登录的&#xff0c;在登录窗口只能看到普通用户和访客登录。以普通身份登陆Ubuntu后我们需要做一些修改,普通用户登录后&#xff0c;修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入: sudo -s.然后输入普通用户登陆的密码&#xff0c…

java codepointbefore_Java StringBuilder codePointBefore()方法与示例

StringBuilder类codePointBefore()方法codePointBefore()方法在java.lang包中可用。codePointBefore()方法用于表示给定索引和数组索引从0到length()-1开始的Unicode代码点。codePointBefore()方法是一种非静态方法&#xff0c;仅可通过类对象访问&#xff0c;如果尝试使用类名…

随机交换检验数据挖掘结果-assessing data mining result via swap randomization

转载自己的博客&#xff1a; http://blog.csdn.net/lgnlgn/article/details/5936945 数据挖掘中一个重要的研究议题是确定发现的模式或模型是否显著。虽然传统统计方法已经早已用以进行显著性检验&#xff0c;但是在数据挖掘领域这一方法却没有得到足够的重视。在本文中提出采…

sip中的100trying到底有啥用

SIP是一种类似HTTP的基于请求响应的协议。理想情况下&#xff0c;请求被发出后&#xff0c;应该无任何延迟的传回响应。但是这是理想情况&#xff0c;有些时候接收端收到请求后进行处理需要一定的延迟&#xff0c;这个延迟是不一定的&#xff0c;SIP中有一个超时机制&#xff0…

java幂等性原理_Java接口幂等性设计原理解析

在微服务架构下&#xff0c;我们在完成一个订单流程时经常遇到下面的场景&#xff1a;一个订单创建接口&#xff0c;第一次调用超时了&#xff0c;然后调用方重试了一次在订单创建时&#xff0c;我们需要去扣减库存&#xff0c;这时接口发生了超时&#xff0c;调用方重试了一次…

intent几种传值数组、对象、集合(Array,Object,List)

1.Array private ArrayList<String> checkListnew ArrayList<String>();Intent intentnew Intent(mytext.this,show.class);intent.putStringArrayListExtra("list", checkList);startActivity(intent);调用 Intent intentthis.getIntent();ArrayList&l…

.mod.c 是什么文件

我们可以为代码清单4.1的模板编写一个简单的Makefile&#xff1a; obj-m : hello.o 并使用如下命令编译Hello World模块&#xff1a; make -C /usr/src/linux-2.6.15.5/ M/driver_study/ modules 如果当前处于模块所在的目录&#xff0c;则以下命令与上述命令同等&#xff1a…

java web Jersey_使用CXF和Jersey框架来进行Java的WebService编程

CXFCXF是在xfire的基础上实现的。1)首先呢&#xff0c;还是包的问题&#xff0c;在http://cxf.apache.org/download.html这里可以下到最新版的CXF&#xff0c;当然&#xff0c;我用的是最新版的。接下来还是那句废话&#xff0c;建WEB项目&#xff0c;放入JAR包。而JAR包我们就…

Binding是WPF的核心,WPF的常用数据源绑定有四种

Binding是WPF的核心&#xff0c;WPF的数据源有以下几种&#xff1a; 1、ADO.NET中的DataTable 2、xml数据源 3、object数据源 4、元素控件属性 详细说明见链接&#xff1a;http://www.cnblogs.com/linlf03/archive/2011/09/06/2168440.html 转载于:https://www.cnblogs.com/jun…

对 Linux 新手非常有用的 20 个命令

你打算从Windows换到Linux上来&#xff0c;还是你刚好换到Linux上来&#xff1f;哎哟&#xff01;&#xff01;&#xff01;我说什么呢&#xff0c;是什么原因你就出现在我的世界里了。从我以往的经验来说&#xff0c;当我刚使用Linux&#xff0c;命令&#xff0c;终端啊什么的…

java float什么类型数据类型_Java中的Float和double数据类型

浮点数据类型是单精度32位IEEE 754浮点数,双数据类型是双精度64位IEEE 754浮点数.这是什么意思&#xff1f;什么时候应该使用float而不是double,反之亦然&#xff1f;解决方法:总结一下&#xff1a;> float以32位表示,带有1个符号位,8位指数和23位有效数字(或者从科学数字符…

S3C2440与SDRAM的地址连线分析

S3C2440有27根地址线ADDR[26:0]&#xff0c;8根片选信号ngcs0-ngcs7,对应bank0-bank7&#xff0c;当访问bankx的地址空间&#xff0c;ngcsx引脚为低电平&#xff0c;选中外设。 2^272^7 * 2^10 * 2^10 128Mbyte 8*128Mbyte 1Gbyte 所以S3C2440总的寻址空间是1Gbyte。 市面…

java方法有excel实现_Java实现EXCEL操作(1)

Java实现EXCEL操作(1)1、实现方法&#xff1a;现在有三种方法去实现&#xff1a;jxl 、poi 、 FastExcel&#xff1a;97~2003在这里只讲poi实现方法。poi的包可以去Apache官网上去下载&#xff1a;http://poi.apache.org/download.html2、poi实现【1】低版本的导入导出方法&…

maven生成javadoc【原创】

1.命令模式&#xff1a; mvn javadoc:javadoc 2.eclipse下&#xff1a; 转载于:https://www.cnblogs.com/caiyuanzai/archive/2012/03/30/2425780.html

S3C2440_MMU

MMU,全称Memory Manage Unit, 中文名——存储器管理单元。 许多年以前&#xff0c;当人们还在使用DOS或是更古老的操作系统的时候&#xff0c;计算机的内存还非常小&#xff0c;一般都是以K为单位进行计算&#xff0c;相应的&#xff0c;当时的程序规模也不大&#xff0c;所以 …

某单位会java_Java核心API -- 4(日期类)

1. Date类(Java.utilDate)java.util.Date类用于封装日期及时间信息&#xff0c;一般仅用它显示某个日期&#xff0c;不对他作任何操作处理&#xff0c;作处理用Calendar类&#xff0c;计算方便。//创建一个Date实例&#xff0c;默认的构造方法创建的日期代表当前系统时间Date d…

图片加到json中,提交到服务器端处理异常问题。

框架&#xff1a;phonegap.利用phonegap 的plungin 取到图片数据 &#xff0c;加到json中&#xff0c;利用jquery的ajax提交到服务器端&#xff0c;在服务器端解析并保存图片。但打开图片时&#xff0c;出现图片已被破坏的提示。或者有时候&#xff0c;提示json中有特殊字符。试…

s3c2440的内存管理机制

1. Nand Flash、Nor Flash、SDRAM地址区别 Nand Flash&#xff1a;ROM&#xff0c;容量大&#xff0c;适用于数据存储&#xff0c;ARM不能从Nand中直接启动&#xff0c;需要把程序从Nand的前4k空间中拷贝到SDRAM&#xff0c;然后再从SDRAM中启动。 Nor Flash&#xff1a;…

java阴阳师抽卡概率_《阴阳师》公布抽卡概率!看到数字我哭了

随着《文化部关于规范网络游戏运营加强事中事后监管工作的通知》(以下简称“通知”)的正式生效&#xff0c;网游与手游似乎也迎来了一个全新的时代&#xff0c;除了我们之前关注的游戏帐号实名制认证之外&#xff0c;道具的合成以及氪金抽卡概率问题也非常值得玩家注意&#xf…