2017-12-07 13 views
-1

したがって、scanLineを実装するメソッドを呼び出す必要があります。これは、ポイントのrasterImage List <Point2D.Double>をリストに変換する<Point>

  • 一覧
  • カラー
  • もう一つの方法は、Point2D.Doubleのリストを返します

    1. パラメータ

      に3つの引数を取ります。私は新しいリストに戻り値を渡します

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

      は、今私はscanLineのパラメータとしてoutPolygonリストを使用する必要があります。しかし、Pointのリストが必要で、Point2D.Doubleのリストを渡しているので、Wrong argument typeが出てきます。

      どのように変換するのですか?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)); 
      } 
      
    +2

    とあなたは何を試してみましたか? –

    +0

    @OliverCharlesworth私はこの試み: '//převedeníZ PointDouble NA PointInt \t \t \t \t \tため\t \t \t \tを(INT i = 0; iはoutPolygon.sizeを()<; iは++){ \t \t \t \t \t \t \t \t \t \t int x =(int)(outPolygon.get(i).x *(img.getWidth() - 1)); \t \t \t \t \t \t \t \t \t \t int型のY =(INT)((1 - outPolygon.get(I)・Y)*(img.getHeight() - 1))。 \t \t \t \t \t \t \t \t \t \t //uloženíボドゥDOnovéhoseznamu \t \t \t \t \t \t \t \t \t \t pointsInInteger.add(新たな点(x、y))。 \t \t \t \t \t \t \t \t \t} ' – strazak

    答えて

    0

    は、各ポイントのための新しいPoint2D.Doubleを含む新しいリストを作成します。これのようなものはオプションになります。

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

    またはループ

    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

    互換性のない型。必要なArrayList しかし、 'collect'がRに推論されました:変数variable(s)のインスタンスがありませんTリストがArrayList strazak

    +0

    に準拠するように存在する場合Java 8ストリームに精通していない場合は、古典的なループの例です。 –

    +0

    Point2D.DoubleをPointに変換する必要がありました。あなたの答えは間違った方向です。ポイントタイプを逆にしてみてください。 – Keara

    関連する問題