place and show pixel in the Cartesian plane graph in JavaFX

Posted by user3671803 on Stack Overflow See other posts from Stack Overflow or by user3671803
Published on 2014-05-28T01:08:28Z Indexed on 2014/05/28 3:25 UTC
Read the original article Hit count: 484

Filed under:

I have this method to draw the Cartesian plane in JavaFX, using canvas and would like to know if it is possible to place or show the pixel:

public class Grafics extends StackPane {

         private Canvas canvas;

            public void Grafics(){ 

                    GridPane grid = new GridPane();
                    grid.setPadding(new Insets(5));
                    grid.setHgap(10);
                    grid.setVgap(10);

                    canvas = new Canvas();
                    canvas.setHeight(500);
                    canvas.setWidth(700);
                    GridPane.setHalignment(canvas, HPos.CENTER);
                    grid.add(canvas, 0, 2);

                    GraphicsContext gc = canvas.getGraphicsContext2D();
                    gc.setFill(Color.BLACK);
                    gc.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
                    gc.setFill(Color.WHITE);
                    gc.fillRect(1, 1, canvas.getWidth() - 2, canvas.getHeight() - 2);

                    drawAxesXY(gc); //call the method drawAxes

                   getChildren().addAll(grid);// add an gridpane in stackpane
              }



private void drawAxesXY(GraphicsContext gc1) {

 PixelWriter pixelWriter = canvas.getGraphicsContext2D().getPixelWriter();

                    gc1.setFill(Color.WHITE);
                    gc1.setStroke(Color.BLACK);
                    gc1.setLineWidth(1.5);
                    gc1.strokeText("Y", 350, 30);
                    gc1.scale(1, 1);  
                    gc1.translate((canvas.getHeight() / 50) - (canvas.getWidth() / 10), canvas.getHeight() / 50);
                    gc1.strokeLine(canvas.getWidth() - 300, canvas.getWidth() - 300,
                            canvas.getHeight() - 100, canvas.getHeight() / 30);
                    pixelWriter.setColor(300, 300, Color.RED);


                    gc1.strokeText("X", 620, 220);  
                    gc1.translate(canvas.getWidth() - (canvas.getHeight() / 10), -220);
                    gc1.rotate(90.0);
                    gc1.setFill(Color.WHITE);
                    gc1.setStroke(Color.RED);
                    gc1.setLineWidth(1.5);
                    gc1.strokeLine(canvas.getWidth() - 250, canvas.getWidth() - 250,
                            canvas.getHeight() - 50, canvas.getHeight() / 30);
                    pixelWriter.setColor(620, 220, Color.RED);

                        }
                    }

I put a line black and the other red http://postimg.org/image/tewjhco4z/

and I wanna know if is possible to place or show the pixel in Figure like this http://postimg.org/image/98k9mvnb3/

© Stack Overflow or respective owner

Related posts about javafx-8