Зазубная линия с Drawline () с использованием java awtJAVA

Программисты JAVA общаются здесь
Anonymous
Зазубная линия с Drawline () с использованием java awt

Сообщение Anonymous »

Я тестирую 2D -ходьбу определенных математических функций с использованием Java Awt, и я нашел странные шаблоны. Ручной чертеж 2D Прогулка функций не показал никаких странных шаблонов, поэтому я начал проверять поведение Java AWT. Обратите внимание, что одна линия, синяя, зазубрена, это проблема. I tried to use different settings for RenderingHints() but none worked:
Изображение

This is the simplified code:

Код: Выделить всё

public class Draw {
public static void main(String[] args) {
JFrame frame = new JFrame("Draw");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setVisible(true);
frame.add(new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
for (int i = 0; i < 200; i++) {
g.drawLine(i, i, i + 1, i + 1);//function driven 2d walk, replaced by diagonals for SO purpose
}
g.setColor(Color.GREEN);
g.drawLine(10, 0, 210, 200);//reference line
}
});
}
}
< /code>
В этом примере синяя линия должна иметь ту же форму, что и зеленая линия, но она зазубрена. Обратите внимание, что renderinghints.key_antialiasing 
бесполезен, поскольку он просто размывает рисунок, но не решает проблему Jagged Line:


проблема. Я использую Java (TM) SE среды выполнения 18,9 в Windows 11.


Подробнее здесь: https://stackoverflow.com/questions/796 ... g-java-awt

Вернуться в «JAVA»