Я использую MouseMotion Listeners для добавления фигур в HashSet, а затем заполняю их с помощью Graphics2D. Однако, когда я слишком быстро двигаю мышь, точки больше не образуют связную линию.
Я пробовал поискать в Google, но не нашел соответствующего ответа.
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
//points.add(new Point(e.getX(), e.getY()));
shapes.add(new ShapeInfo(circle, new Point(e.getX(), e.getY()), color));
repaint();
}
});
for(ShapeInfo info : shapes) {
Point location = info.point.getLocation();
g2d.translate(location.x, location.y);
g2d.setColor(info.color);
g2d.fill(info.shape);
g2d.translate(-location.x, -location.y);
}
Я надеюсь получить красивую, плавную линию, сделанную из кругов, но в конечном итоге получу более замкнутые круги. https://imgur.com/a/KLOyPcn <- Вот что происходит, когда я слишком быстро перетаскиваю мышь во время рисования. </p>