如何在绘制另一个点之后填充多边形点

时间:2017-11-21 14:35:22

标签: java algorithm

我正在实施扫描线算法,它应该用我在参数中设置的颜色填充多边形。它完美地运行,但算法的另一个参数是List Points。在这里,我调用polygon.getPoints()方法,它获取最后一个多边形绘制的点。这样我只能填充最后一个多边形。

if(tool == 4){

                       rasterImage = scanLine.fill(rasterImage,polygon.getPoints(),0x77a345);
                       panel.repaint();

                   }

这是RasterizePolygon()方法

您可以看到多边形的点保存在此处的列表中。

 public RasterImage<PixelType> rasterizePolygon(RasterImage<PixelType> img,
                                               final double startX, final double startY, final PixelType value){
    RasterImage<PixelType> result = img;

        if(isDrawing == false){
            points.clear();
        }

        points.add(new Point((int) startX, (int) startY));

        if(isDrawing == true) {
            if ((points.get(points.size() - 1).x >= points.get(0).x - 10) && (points.get(points.size() - 1).x <= points.get(0).x + 10) &&
                    (points.get(points.size() - 1).y >= points.get(0).y - 10) && (points.get(points.size() - 1).y <= points.get(0).y + 10)) {

                isDrawing = false;
            }

        }

    return result;

}

如您所见,我在完成绘制多边形后清除了点列表。这样我就可以通过向列表添加新点来开始绘制另一个。但是,我希望能够绘制另一个多边形,但甚至可以填充前一个多边形。如何实现这个?

0 个答案:

没有答案