【发布时间】:2017-09-11 18:13:08
【问题描述】:
下面的代码生成了一个 JavaFX 画布,它可以用鼠标指针在上面绘制,但会跳过一些点,即,如果尝试绘制一条连续的线,则会留下空隙。随着指针速度的增加,间隙会加剧。
是什么导致了这种行为以及如何实现连接良好的线? (注意,我正在寻找一个答案,明确切换指针经过的每个像素变黑,不是平滑或连接点等操作)
public class DrawingSample extends Application {
public void start(Stage stage) {
FlowPane flowPane = new FlowPane();
Canvas canvas = new Canvas(300, 300);
flowPane.getChildren().add(canvas);
GraphicsContext graphicsContext = canvas.getGraphicsContext2D();
graphicsContext.setFill(Color.WHITE);
graphicsContext.fillRect(0, 0, 300, 300);
canvas.setOnMouseDragged((event) -> {
graphicsContext.setFill(Color.BLACK);
graphicsContext.fillRect(event.getX(), event.getY(), 1, 1);
});
stage.setScene(new Scene(flowPane));
stage.show();
}
public static void main(String[] args) {
launch(DrawingSample.class);
}
}
下图展示了随着我们下降,从左到右以增加速度绘制的三条线。
【问题讨论】: