Как нарисовать равносторонний треугольник в JavaFX?

#javafx

#javafx

Вопрос:

Я пытаюсь создать равносторонний треугольник с помощью JavaFX. Говорят, что используйте многоугольник и setLayoutX() и setLayoutY() . Итак, как это сделать? Это код, который я пробовал:

 @Override public void start(Stage stage) throws Exception {
    stage.setTitle("Board");
    StackPane root = new StackPane();
    Scene scene = new Scene(root, 600, 519);
    stage.setScene(scene);
    Polygon triangle = new Polygon();
    stage.show();
}
 

Комментарии:

1. Что именно ты пытаешься сделать? Я не вижу никакого кода, размещенного здесь.

2. Извините, просто крошечный проект. @Override public void start(Stage stage) вызывает исключение { stage.setTitle(«Доска»); StackPane root = new StackPane(); Scene scene = новая сцена (root, 600, 519); stage.setScene(сцена); Полигональный треугольник = новый полигон(); stage.show(); } Я застрял в части полигонального треугольника, не знаю, что делать дальше.

3. В следующий раз просто отредактируйте сообщение. Не добавляйте код в комментарии.

4. Картер, этот мой ответ вообще помог? Прошел почти целый день без каких-либо отзывов от вас.

Ответ №1:

Две проблемы:

  1. Вы не добавили многоугольник в контейнер
  2. Вы не определили точки многоугольника

Ваш код должен быть примерно таким:

 @Override
public void start (Stage stage) throws Exception {
    stage.setTitle("Board");
    Polygon triangle = new Polygon();
    //triangle.setLayoutX(100);
    //triangle.setLayoutY(400);
    triangle.getPoints()
        .addAll(new Double[] {300.0, 50.0, 250.0, 100.0, 350.0, 100.0,});
    Group root = new Group(triangle); // You can replace with StackPane for center alignment
    Scene scene = new Scene(root, 600, 519);
    stage.setScene(scene);
    stage.show();
}
 

Как только вы это сделаете, вы должны увидеть что-то вроде изображения ниже. Вам нужно определить координаты (x, y) для вашего треугольника.

введите описание изображения здесь

Когда я раскомментировал строки setLayoutX() и setLayoutY() , результат был похож на изображение ниже.

введите описание изображения здесь

Если вам нужен урок рисования в Java FX, загляните на этот сайт.

Комментарии:

1. Не могли бы вы сказать мне, что такое «новый двойной[] {300.0, 50.0, 250.0, 100.0, 350.0, 100.0,}» означает?

2. @CarterZhang это массив (x, y) координат вершин.