我正在尝试在JavaFx中创建一个徒手绘画应用程序。我创建了一个onMouse拖动事件,当用户移动鼠标时,它会创建2d点并用点连接点。
path = new Path();
path.setStrokeWidth(10);
path.setStroke(Color.BLACK);
...
EventHandler<MouseEvent> mouseHandler = new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
if (mouseEvent.getEventType() == MouseEvent.MOUSE_PRESSED) {
path.getElements().add(new MoveTo(mouseEvent.getX(), mouseEvent.getY()));
} else if (mouseEvent.getEventType() == MouseEvent.MOUSE_DRAGGED) {
path.getElements().add(new LineTo(mouseEvent.getX(), mouseEvent.getY()));
}
}
};
现在我想添加一个橡皮擦工具,它会查看它是否与该线相交并删除最近的路径点。当我使用JavaFx intersects方法时,它只能处理非常不准确的节点的boundingBox。
C#获得了“IncrementalStrokeHitTester”方法,该方法使用鼠标/橡皮擦来测试笔划。有没有类似的方法可以用于我的橡皮擦工具?