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

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

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

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

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

textual
Листинг программы
  1. import javafx.application.Application;
  2. import javafx.geometry.VPos;
  3. import javafx.scene.Group;
  4. import javafx.scene.Scene;
  5. import javafx.scene.canvas.Canvas;
  6. import javafx.scene.canvas.GraphicsContext;
  7. import javafx.scene.paint.Color;
  8. import javafx.scene.text.TextAlignment;
  9. import javafx.stage.Stage;
  10.  
  11. public class ChartExp extends Application {
  12.  
  13.     @Override
  14.     public void start(Stage primaryStage) throws Exception {
  15.         Canvas canvas = new Canvas(600, 600);
  16.         GraphicsContext gc = canvas.getGraphicsContext2D();
  17.  
  18.  
  19.         // сетка
  20.         gc.setStroke(Color.GRAY);
  21.         gc.setLineWidth(.5);
  22.         gc.setFontSmoothingType(null);
  23.         gc.setLineDashes(5, 2);
  24.         for (int i = 0; i < 10; i++) {
  25.             gc.strokeLine(i * 60, 0, i * 60, 600);
  26.             gc.strokeLine(0, i * 60, 600, i * 60);
  27.         }
  28.         gc.setStroke(Color.BLUE);
  29.         gc.setLineDashes(null);
  30.         gc.setLineWidth(1);
  31.  
  32.         // числа
  33.         gc.setTextAlign(TextAlignment.CENTER);
  34.         for (int i = 0; i < 11; i++) {
  35.             if (i == 5) continue;
  36.             gc.strokeText(String.valueOf(i * 60 - 300), i * 60, 315);
  37.         }
  38.         gc.setTextBaseline(VPos.CENTER);
  39.         gc.setTextAlign(TextAlignment.LEFT);
  40.         for (int i = 0; i < 11; i++) {
  41.             if (i == 5) continue;
  42.             gc.strokeText(String.valueOf(300 - i * 60), 310, i * 60);
  43.         }
  44.  
  45.         gc.setStroke(Color.BLACK);
  46.         gc.strokeLine(300, 0, 300, 600);    // zero line
  47.         gc.strokeLine(0, 300, 600, 300);    // zero line
  48.  
  49.  
  50.         canvas.setOnMouseClicked(event -> gc.fillOval(event.getX() - 2, event.getY() - 2, 4, 4));
  51.  
  52.  
  53.         primaryStage.setScene(new Scene(new Group(canvas)));
  54.         primaryStage.show();
  55.     }
  56. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут