1
使用JavaFX,我试图将阴影和反射效果链接在一起,将文本绘制到画布上。将反射应用于JavaFX中的阴影效果
以下代码将显示反射的红色文本,然后将阴影应用于原始文本和反射文本。
Canvas canvas = new Canvas(400,400);
GraphicsContext context = canvas.getGraphicsContext2D();
context.setFont(new Font("Arial Bold", 48));
context.setFill(Color.RED);
DropShadow shadow = new DropShadow(6, 2, 2, Color.BLACK);
Reflection reflect = new Reflection(10, 1.0, 1.0, 0.0);
shadow.setInput(reflect);
context.setEffect(shadow);
context.fillText("Hello, world!", 100,100);
但是,投影在反射中出现“向后”,因为需要首先应用阴影以获得逼真的效果。我试图通过颠倒在其中的影响的应用顺序,通过从上方改变setInput
和setEffect
行的代码来完成这个如下:
reflect.setInput(shadow);
context.setEffect(reflect);
但是,结果是仅反射被施加;我根本看不到任何投影。
为什么不投射阴影/不可见?
如何重写此代码以实现所需效果(如果可能,只能使用效果的组合)?
感谢你 - 你已经基本上改写了图像效果从头开始,似乎!然而,我主要感兴趣的是为什么我的代码不能正常工作,并且想知道是否可以仅使用效果组合来实现所需的效果。我已经更新了我的问题,以便更清楚。但是,谢谢你的努力! –