Холст не делает непрозрачным - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь визуализировать основные вещи на холсте с его GraphicsContext.Я установил непрозрачный цвет для обводки, но результат на экране слегка прозрачный.

public class Spielwiese extends Application {

   public static void main(String... args) {
      launch(args);
   }

   @Override
   public void start(Stage window) {
      Canvas canvas = new Canvas(800, 600);
      window.setScene(new Scene(new Pane(canvas)));
      window.show();

      GraphicsContext g = canvas.getGraphicsContext2D();
      g.setFill(Color.BLACK);
      g.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
      g.setStroke(Color.WHITE);
      g.strokeRect(16, 16, 64, 64);
   }

}

Результат: enter image description here

Я попытался установить прозрачностьСам цвет использовал new Color(1, 1, 1, 1), но он имел тот же эффект.
Однако мне удалось получить непрозрачный прямоугольник, вызвав g.strokeRect(16, 16, 64, 64); несколько раз, чтобы обвести его несколько раз, но мне это не нравится"решение".
Есть ли способ нанести непрозрачную фигуру на холст, не поглаживая его несколько раз?

РЕДАКТИРОВАТЬ: Когда я копирую инструкцию g.strokeRect(16, 16, 64, 64); и помещаю 4 из них в конец метода запуска вместо одного, я получаю непрозрачный прямоугольник:
enter image description here

1 Ответ

0 голосов
/ 25 февраля 2019

Вы должны добавить g.setStrokeWidth(2.0); или аналогичный вашему коду.Если вы рисуете очень тонкие линии, они кажутся полупрозрачными, если они не точно выровнены по границам пикселей.

См. Более подробную информацию: https://openjfx.io/javadoc/11/javafx.graphics/javafx/scene/shape/Shape.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...