将List <point2d.double>转换为List <point>

时间:2017-12-07 12:57:57

标签: java

所以,我需要调用一个实现scanLine的方法。参数

需要3个参数
  1. rasterImage
  2. 积分列表
  3. 颜色
  4. 另一种方法返回Point2D.Double的List。我将返回值传递给新列表:

    ArrayList<Point2D.Double> outPolygon = clip.clipPolygon(cPoints, clipper);
    

    现在我需要使用outPolygon列表作为scanLine的参数。但是Wrong argument type会弹出,因为它需要Point的列表,而我正在通过Point2D.Double的列表。

    如何转换它以便我可以将其作为scanLine的参数传递?

    我试过了:

    // prevedení z PointDouble na PointInt 
    for(int i=0; i<outPolygon.size(); i++)
    {
        int x = (int)(outPolygon.get(i).x *(img.getWidth() - 1));
        int y = (int)((1 - outPolygon.get(i).y) * (img.getHeight() - 1));
        // uložení bodu do nového seznamu
        pointsInInteger.add(new Point(x,y));
    }
    

1 个答案:

答案 0 :(得分:0)

为每个Point创建一个包含新Point2D.Double的新列表。像这样的东西是一个选择。

long

或循环

List<Point> points = ...
List<Point2D.Double> points2s = points.stream()
    .map(point -> new Point2D.Double(point.getX(), point.getY()))
    .collect(Collectors.toList());