Javafx Canvasを使用して1ピクセルの線を描画するにはどうすればよいですか?



How Draw An 1 Pixel Line Using Javafx Canvas



解決:

各ピクセルを(点ではなく)(小さな)長方形として想像してください。整数座標はピクセル間の境界です。したがって、整数座標を持つ(水平または垂直)線は「ピクセル間」になります。これはアンチアライズを介してレンダリングされ、1つのピクセルで線の半分を、もう1つのピクセルで半分を近似します。線を0.5ピクセル左または右に移動すると、線がピクセルの中心に移動し、問題を回避します。

サンプルは次のとおりです。



javafx.application.Applicationをインポートします。 javafx.scene.Sceneをインポートします。インポートjavafx.scene.canvas.Canvas;インポートjavafx.scene.canvas.GraphicsContext;インポートjavafx.scene.layout.VBox;インポートjavafx.stage.Stage;パブリッククラスSharpCanvasTestはアプリケーションを拡張します{@Overridepublic void start(Stage primaryStage){Canvas SharpCanvas = createCanvasGrid(600、300、true);キャンバスblurryCanvas = createCanvasGrid(600、300、false); VBoxルート=新しいVBox(5、sharpCanvas、blurryCanvas); primaryStage.setScene(new Scene(root)); primaryStage.show(); } private Canvas createCanvasGrid(int width、int height、boolean Sharp){Canvas canvas = new Canvas(width、height); GraphicsContext gc = canvas.getGraphicsContext2D(); gc.setLineWidth(1.0); for(int x = 0; xそして結果:

ここに画像の説明を入力してください