如何使用 androidPlot 库绘制多边形?

How to draw a polygon with androidPlot library?

我正在尝试使用 AndroidPlot 库绘制多边形。
我成功绘制了四个点,但它只绘制了多边形的 3 个边。 (它没有关闭多边形)
应填充多边形。我怎样才能做到这一点?

谢谢!

编辑:

我先画一个点,然后画多边形,因为我必须显示该点是否在多边形内部。

private XYPlot plot;
plot = (XYPlot) findViewById(R.id.graph);

seriesPointFormat = new LineAndPointFormatter(
                    null,                   // line color
                    Color.rgb(5, 100, 150),                   // point color
                    null,                                   // fill color
                    new PointLabelFormatter()); 

            float[] xTol = intent.getExtras().getFloatArray("tolerancesX");
            float[] yTol = intent.getExtras().getFloatArray("tolerancesY");

            Float[] xTolerances = new Float[xTol.length];
            Float[] yTolerances = new Float[yTol.length];

        for(int i = 0; i< xTol.length; i++)
            xTolerances[i] = xTol[i];

        for(int i = 0; i< yTol.length; i++)
            yTolerances[i] = yTol[i];

            //Example
            x=0.35f;
            y=0.65f;
            //Turn the above arrays into XYSeries':
            XYSeries seriesPoint = new SimpleXYSeries(
                  Arrays.asList(x),       
                  Arrays.asList(y), 
                  "point");                          // Set the display title of the series

            plot.getGraphWidget().setDomainValueFormat(new DecimalFormat("##.###"));

            // add a new series' to the xyplot:
            plot.addSeries(seriesPoint, seriesPointFormat);

            XYSeries seriesPolygon = new SimpleXYSeries(
                    Arrays.asList(xTolerances), 
                    Arrays.asList(yTolerances), 
                    "Polygon");

            LineAndPointFormatter seriesPolygonFormat = new LineAndPointFormatter(
                    Color.rgb(500, 0, 0),  // line color
                    Color.rgb(500, 100, 0), // point color
                    null, 
                    new PointLabelFormatter());

            seriesPolygonFormat.getLinePaint().setStrokeWidth(2);

            plot.addSeries(seriesPolygon, seriesPolygonFormat);

答案很明显,愚蠢的我......(Facepalm)

您只需在数组末尾添加第一个点。

        Float[] xTolerances = new Float[xTol.length+1];
        Float[] yTolerances = new Float[yTol.length+1];
        for(int i = 0; i< xTol.length; i++)
            xTolerances[i] = xTol[i];
        //add here the first x coordinate at the end of the array
        xTolerances[xTol.length] = xTol[0];

        for(int i = 0; i< yTol.length; i++)
            yTolerances[i] = yTol[i];
        //add here the first x coordinate at the end of the array
        yTolerances[yTol.length] = yTol[0];

并填充多边形:

LineAndPointFormatter seriesPolygonFormat = new LineAndPointFormatter(
                Color.rgb(500, 0, 0),  // line color
                Color.rgb(500, 100, 100), // point color
                Color.argb(50, 200, 0, 0), //fill color with alpha, to make the fill transparent
                new PointLabelFormatter());

我不会取消这个问题,也许对某人有用。