下面的代碼產生了一個JavaFX Canvas,它可以用鼠標指針繪製,但會跳過一些點,即,如果試圖繪製連續線,則會留下間隙。隨着指針速度的增加,間隙增大。如何在JavaFX畫布上用鼠標繪製連續線?
是什麼導致了這種行爲,並且可以做些什麼來實現良好連接的線?(NB,我想找明確切換每個單個像素的指針經過黑色,不操作,例如平滑化或連接點等的答案)
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);
}
}
下圖展示了3我們往下走的時候,從左到右以不斷增加的速度劃線。
廣東話,我們只需要使用[線路](https://docs.oracle.com/javase/8/javafx/api/javafx/scene/shape/Line.html)直接和公正的改變endX( )和endY()鼠標拖動? – Oswald
我對此表示懷疑。線繪製一條直線。 – Sedrick
對不起,我的壞,我認爲OP是要求一條直線:) – Oswald