我在画布上创建了类似于 Paint on Canvas 的东西,但遇到了一个问题——如果你移动光标太快,那么形状就会被绘制成碎片:
是否可以解决此问题,使该行没有空格,就像在 Paint'e 中一样?绘图实现:
canvas.setOnMousePressed(mouseEvent -> {//логика рисования
gc.setFill(cp.getValue());//определям цвет
if(brushType.equals("Square")) {
gc.fillRect(mouseEvent.getX()-brushSize, mouseEvent.getY()-brushSize, brushSize, brushSize);//рисуем
canvas.setOnMouseDragged(mouseEvent1 -> gc.fillRect(mouseEvent1.getX()-brushSize, mouseEvent1.getY()-brushSize, brushSize, brushSize));//рисуем, если курсор двинулся
}
else if(brushType.equals("Circle")){
gc.fillOval(mouseEvent.getX()-brushSize, mouseEvent.getY()-brushSize, brushSize, brushSize);//рисуем
canvas.setOnMouseDragged(mouseEvent1 -> gc.fillOval(mouseEvent1.getX()-brushSize, mouseEvent1.getY()-brushSize, brushSize, brushSize));//рисуем, если курсор двинулся
}
});

它有助于添加一个单独的代码,其中,当移动鼠标时,从前一个光标位置到下一个光标位置绘制一条线:
以下是我在程序中的实现方式: