Нарисовать точку на плоскости - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д