Нарисовать точку на плоскости - Java

Узнай цену своей работы

Формулировка задачи:

Как можно создать окно с координатной плоскостью и поставить на ней точку курсором?

Решение задачи: «Нарисовать точку на плоскости»

textual
Листинг программы
import javafx.application.Application;
import javafx.geometry.VPos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.text.TextAlignment;
import javafx.stage.Stage;
 
public class ChartExp extends Application {
 
    @Override
    public void start(Stage primaryStage) throws Exception {
        Canvas canvas = new Canvas(600, 600);
        GraphicsContext gc = canvas.getGraphicsContext2D();
 
 
        // сетка
        gc.setStroke(Color.GRAY);
        gc.setLineWidth(.5);
        gc.setFontSmoothingType(null);
        gc.setLineDashes(5, 2);
        for (int i = 0; i < 10; i++) {
            gc.strokeLine(i * 60, 0, i * 60, 600);
            gc.strokeLine(0, i * 60, 600, i * 60);
        }
        gc.setStroke(Color.BLUE);
        gc.setLineDashes(null);
        gc.setLineWidth(1);
 
        // числа
        gc.setTextAlign(TextAlignment.CENTER);
        for (int i = 0; i < 11; i++) {
            if (i == 5) continue;
            gc.strokeText(String.valueOf(i * 60 - 300), i * 60, 315);
        }
        gc.setTextBaseline(VPos.CENTER);
        gc.setTextAlign(TextAlignment.LEFT);
        for (int i = 0; i < 11; i++) {
            if (i == 5) continue;
            gc.strokeText(String.valueOf(300 - i * 60), 310, i * 60);
        }
 
        gc.setStroke(Color.BLACK);
        gc.strokeLine(300, 0, 300, 600);    // zero line
        gc.strokeLine(0, 300, 600, 300);    // zero line
 
 
        canvas.setOnMouseClicked(event -> gc.fillOval(event.getX() - 2, event.getY() - 2, 4, 4));
 
 
        primaryStage.setScene(new Scene(new Group(canvas)));
        primaryStage.show();
    }
}

Оцени полезность:

9   голосов , оценка 4 из 5