2016-09-26 3 views
1

Ich versuche einige sehr einfache Zeichnungen zu machen, aber ich kann nicht das Ergebnis bekommen, das ich brauche.drawRect, fillRect, scale stimmt nicht überein

/* 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); 

Mit g2d.scale(2.0, 2.0) das Ergebnis wie folgt aussieht:

enter image description here

Es ist nicht richtig Schlange. Mit scale = 1.0 ist es korrekt auf der linken Seite, aber es ist auf der rechten Seite. Ist das ein Problem der Skalierung? Ich weiß, dass die Kanten von fillRect und drawRect x+w+1/x+w sind, aber selbst wenn Sie daran anpassen, wird es immer noch nicht richtig ausgerichtet.

+0

Wenn Sie fancy neue Striche verwenden wollen, gehen Sie damit um – gpasch

+0

1) Für bessere Hilfe, früher, ein [MCVE] oder [Kurze, selbständige, korrekte Beispiel] (http://www.sscce.org/) . 2) Zeigen Sie eine Zeichnung oder ein Bild des beabsichtigten Ergebnisses. –

Antwort

0

Außer dem oberen Rechteck ausfüllen - Sie sollten es auch zeichnen. Wie Sie sehen können, gibt es keine Grenze für ihn.

+0

das ist irreführend; er muss nicht seine eigenen neuen Bibliotheken und den Gott der Welt mitbringen; Er muss die Längen korrekt angeben – gpasch

Verwandte Themen