графика 3d движка
Для закрепления информации по паттернам ООП, решил написать простенький 3d кубач. Поиски способа преобразовать прямоугольник в трапецию, для создания эффекта перспективы, привели меня к решениям от oracle. Но их документация оставляет желать лучшего. Можно пример такого преобразования? 3d от javaFX думаю не использовать. Ведь не зная как работает вселенная, я не смогу приготовить пирог)
Ответы (1 шт):
Автор решения: виктор чернов
→ Ссылка
Во время уточнения информации для вопроса, нашёл обновлённый сайт oracle, где всё понятно объяснено.
// свойство элемента к которому оно будет применено
PerspectiveTransform perspectiveTrasform = new PerspectiveTransform();
perspectiveTrasform.setUlx(10.0);// верхний левый угол по X
perspectiveTrasform.setUly(10.0);// верхний левый угол по Y
perspectiveTrasform.setUrx(310.0);// верхний правый угол по X
perspectiveTrasform.setUry(40.0);// верхний правый угол по Y
perspectiveTrasform.setLrx(310.0);// нижний правый угол по X
perspectiveTrasform.setLry(60.0);// нижний правый угол по Y
perspectiveTrasform.setLlx(10.0);// нижний левый угол по X
perspectiveTrasform.setLly(90.0);// нижний левый угол по Y
//выше был описан четырёхуголиник с определённой формой
//просто фигуры
Rectangle rect = new Rectangle();
rect.setX(10.0);
rect.setY(10.0);
rect.setWidth(280.0);
rect.setHeight(80.0);
rect.setFill(Color.web("0x3b596d"));
Text text = new Text();
text.setX(20.0);
text.setY(65.0);
text.setText("Perspective");
text.setFill(Color.ALICEBLUE);
text.setFont(Font.font(null, FontWeight.BOLD, 36));
// добавляем фигуры на форму
Group g = new Group(rect, text);
// добавляем эффект на форму
g.setEffect(perspectiveTrasform);
g.setCache(true);
Scene mainScene = new Scene(g);
stage.setScene(mainScene);
stage.show();
Чтоб понять что к чему, лучше самим попробовать поиграть с этим кодом.
Важно!!! решение только для javaFX