2016-09-26 9 views
1

私は非常に単純な図面をしようとしていますが、私は必要な結果を得ることができません。 g2d.scale(2.0, 2.0)drawRect、fillRect、scaleが一致しません

/* Draw Title Bar */ 
    int w = window.getWidth(); 
    int h = 10; 
    g2d.setColor(Color.blue); 

    BasicStroke stroke = new BasicStroke(1.0f,BasicStroke.CAP_BUTT, 
      BasicStroke.JOIN_MITER); 
    g2d.setStroke(stroke); 


    g2d.fillRect(window.getX(), 
      window.getY(), w, h); 



    /* Draw Window Border */ 
    g2d.setPaint(Color.blue); 
    g2d.drawRect(window.getX(), 
      window.getY()+h, 
      window.getWidth(), 
      window.getHeight()); 
    g2d.setColor(Color.red); 
    g2d.drawLine(window.getX(), 50, window.getX()+window.getWidth(), 50); 

結果は次のようになります。

enter image description here

それが正しく並んでいません。スケール= 1.0の場合は、左側に正しく位置合わせされますが、右側には表示されません。これはスケーリングの問題ですか?私は、fillRectとdrawRectの辺がx+w+1/x+wであることを知っていますが、調整してもまだ正しく整列していません。

+0

あなたがそれを扱う斬新なストロークを使用する場合 – gpasch

+0

1)すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/) 。 2)意図した結果の図やイメージを表示する。 –

答えて

0

上の矩形を塗りつけること以外にも、それを描画する必要があります。あなたが見ることができるように、彼のための国境はありません。

+0

これは誤解を招きます。彼は独自の新しい図書館や世界の神を持って来る必要はない。彼は正確に長さを指定する必要があります – gpasch

関連する問題