大家好,我学计算机图形学的边界标志算法是遇到了点问题,希望大家的帮助,谢了,下面的填充为蓝色时颜色总是出现问题import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.image.ImageProducer;
import java.awt.image.MemoryImageSource;import javax.swing.JApplet;public class bjbz extends JApplet {
Point[] p = new Point[7]; double dy = 0; double dx = 0; double tt = 0; int ymax = 0; int ymin = 0; int x = 0, y = 0;
  
int w = 600, h = 400; int blue = Color.blue.getRGB();
int white = Color.white.getRGB(); int[] pixels = new int[w * h]; public void init() {
setSize(800, 600);
for (int k = 0; k < w * h; k++) {
pixels[k] = 0;
}
p[0] = new Point(160, 255);
p[1] = new Point(30, 135);
p[2] = new Point(110, 45);
p[3] = new Point(140, 125);
p[4] = new Point(450, 146);
p[5] = new Point(400, 180);
p[6] = new Point(160, 255);
} public Image boundary() {
Image image;
for (int i = 0; i < 6; i++) {
dy = p[i + 1].y - p[i].y;
dx = (p[i + 1].x - p[i].x) / dy;
if (dy > 0) {
x = p[i].x;
tt = p[i].x;
} else {
x = p[i + 1].x;
tt = 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++) {
tt = tt + dx;
// x = (int) (x + dx + .5);
x = (int) (tt + 0.5);
if (pixels[y * w + x] == blue) {
pixels[y * w + x + 1] = blue;
} else
pixels[y * w + x] = blue;
}

}
ImageProducer ip = new MemoryImageSource(w, h, pixels, 0, w); image = createImage(ip); return image;
} public Image interior() {
Image image;
int f;
int maxx = 450, minx = 30, maxy = 255, miny = 45;
int in_flag;
for (y = miny - 1; y <= maxy; y++) {
in_flag = 0;
for (x = minx - 1; x <= maxx; x++) {
f = pixels[y * w + x];
if (blue == f) {
if (0 == in_flag)
in_flag = 1;
else
in_flag = 0;
}
if (1 == in_flag) {
pixels[y * w + x] = blue; }  else
 pixels[y * w + x] = white;
} }
ImageProducer ip = new MemoryImageSource(w, h, pixels, 0, w); image = createImage(ip);
return image;
} public void paint(Graphics g) {
Image image1 = boundary();
Image image2 = interior();

g.drawImage(image2, 0, 0, null); }
}