Программа, которая анимирует круги, не рисует их плавно, как только несколько сотен нарисованы одновременно.Было предложено использовать аффинное преобразование для копирования фигур.Этот код, реорганизованный для использования graphics2D, работает, но не вызывает никакого повышения производительности, поскольку он все еще заполняет сотни овалов.Как правильно использовать аффинетрансформацию, чтобы заполнить форму один раз, а затем скопировать / переместить ее?
public void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.WHITE);</p>
<pre><code> for (int i = 0; i < gameLogic.getParticleArrSize(); i++) {
Graphics2D g2 = (Graphics2D) g;
Color color = new Color(6,6,6);
Ellipse2D oval = new Ellipse2D.Double(
gameLogic.getParticleXCoor(i),
gameLogic.getParticleYCoor(i),
gameLogic.getParticleSize(i),
gameLogic.getParticleSize(i));
g2.setPaint(color);
g2.fill(oval);
g2.translate(15, 15);
g2.fill(oval);
}
}