Метод fillArc рисует дуги с неверными размерами - PullRequest
0 голосов
/ 27 декабря 2018

У меня проблема с методом fillArc класса Graphics.

Когда я даю значения типа int для размера дуги, он рисует дугу с неправильными размерами.

 Dimension dimensione;  //dimension of the window. 
 public void paint() {

    BufferStrategy bS = this.getBufferStrategy();

    Graphics g=bS.getDrawGraphics();
   g.clearRect(0, 0,(int)dimensione.getWidth(), (int)dimensione.getHeight());



   // g.fillArc((int)dimensione.getWidth()/2-150,(int)dimensione.getHeight()/2-150, 300,300, 0, 360);
        g.fillArc(0,0,(int)dimensione.getWidth(), (int)dimensione.getHeight(),0, 360);


    bS.show();


    try {
        Thread.sleep(100);
    } catch (InterruptedException ex) {
        Logger.getLogger(Disegno.class.getName()).log(Level.SEVERE, null, ex);
    }
}

Это должно создать дугу размером с окно ... но это результат:

enter image description here

Что я делаю не так?

1 Ответ

0 голосов
/ 27 декабря 2018

Поймите, что «видимая область» - это размер окна МИНУС украшений кадра.

Вы не должны использовать размер окна в качестве базовой линии, вместо этого переопределите getPreferredSize (в вашем случае java.awt.Canvas) и верните предпочтительный размер, который вы хотели бы использовать, затем вы можете использовать Window#pack, чтобы упаковать окно вокруг контента, и оно станет независимым от платформы.

Затем вы можете использовать getWidth и getHeight методы Canvas, чтобы определить действительный размер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...