2017-12-07 9 views
-1

Also muss ich eine Methode aufrufen, die scanLine implementiert. Es dauert 3 Argumente in den ParameterKonvertieren Liste <Point2D.Double> zu Liste <Point>

  1. rasterImage
  2. Liste von Punkten
  3. Farbe

Eine andere Methode gibt eine Liste der Point2D.Double. Ich gehe den Rückgabewert auf neue Liste:

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

Jetzt muss ich die outPolygon Liste als Parameter von scanLine verwenden. Aber Wrong argument type erscheint, weil es eine Liste von Point benötigt und ich übergebe Liste von Point2D.Double.

Wie konvertiert man es so, dass ich es als Argument von scanLine übergeben kann?

Ich versuchte dies:

// 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)); 
} 
+2

Haben Sie etwas versuchen? –

+0

@OliverCharlesworth Ich versuchte dies: '// převedení z PointDouble na PointInt \t \t \t \t \t \t \t \t \t for (int i = 0; i strazak

Antwort

0

eine neue Liste erstellen neue Point2D.Double für jeden Punkt enthält. So etwas wäre eine Option.

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

oder mit einer Schleife

final List<Point2D.Double> list = new ArrayList<>(points.size()); 
    for (Point point : points) { 
     Point2D.Double aDouble = new Point2D.Double(point.getX(), point.getY()); 
     list.add(aDouble); 
    } 
+0

Inkompatible Typen.Required ArrayList aber 'collect' wurde auf R abgeleitet: keine Instanz (en) vom Typ Variable (n) T existieren, so dass List ArrayList entspricht strazak

+0

Wenn Sie mit Java 8 Streams nicht vertraut sind, habe ich hinzugefügt ein klassisches Loop-Beispiel. –

+0

Sie mussten Point2D.Double in Point konvertieren. Deine Antwort ist falsch herum. Versuchen Sie einfach, die Punkttypen umzukehren. – Keara

Verwandte Themen