Как сделать пиксель идеальным в Line2D - Graphics2D - PullRequest
9 голосов
/ 07 сентября 2011

G'day, у меня есть JPanel с некоторыми объектами Line2D.Проблема в том, что когда я рисую эту линию, она не появляется так, как я хочу.Линии не гладкие, сложно объяснить словом, поэтому я выкладываю изображение,

enter image description here

Увеличенная область,

enter image description here

Как заставить их выглядеть более отполированными, а не морщинистыми.

Спасибо

1 Ответ

10 голосов
/ 07 сентября 2011

Скорее всего, проблема в том, что у вас не включен сглаживание в вашем графическом контексте. Перед рисованием попробуйте следующую линию:

graphics.setRenderingHint(
        RenderingHints.KEY_ANTIALIASING,
        RenderingHints.VALUE_ANTIALIAS_ON);

(где, конечно, graphics - ваш экземпляр Graphics2D).

Позже, когда вы обнаружите, что текст , который вы рисуете, также уродлив и неровен, вы захотите использовать

graphics.setRenderingHint(
        RenderingHints.KEY_TEXT_ANTIALIASING,
        RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

Однако текст немного сложнее; есть несколько значений для этой подсказки, которые вы можете использовать в зависимости (среди прочего) от типа экрана, на котором вы рисуете текст. Вы должны прочитать RenderingHints.KEY_TEXT_ANTIALIASING API документ для этих деталей.

...