сделать холст в javafx похожим на свет - PullRequest
2 голосов
/ 14 января 2020

У меня есть несколько полотен, которые представляют световые индикаторы. Они указывают, работает ли данная функция программы или нет. если он работает, холст должен «загореться», как будто источник света излучает свет через него. Если функция не активна, холст должен быть «темным», так как в нем не светится активно.

canvas.setEffect(new Lighting());

Я пробовал javafx Lighting, которая дает хорошие результаты для сцены "не светится", но я не нашел решения для фактического освещения холстов.

Вот изображение холсты (на сцене по умолчанию «не загораются»), которые я хочу осветить:

Canvas picture screenshot

1 Ответ

2 голосов
/ 14 января 2020

Использование точечного источника света помогло мне. Холст выглядит так, будто светится. Как предложено ниже, сочетание светового эффекта с различными эффектами может привести к еще лучшему результату. Я счастлив, как сейчас, хотя. Код, который я использовал:

Light.Point light = new Light.Point();
light.setX(65);
light.setY(65);
light.setZ(1000);
light.setColor(Color.WHITE);
Lighting lighting = new Lighting();
lighting.setLight(light);
canvas.setEffect(lighting);

Вот изображение, показывающее выключенное состояние (верхние значки) и включенное состояние (нижние значки). Если вы переключаете состояния, разница становится еще более заметной.

Picture showing the effect

...