我们有很多依赖于绘图的图形语义的Swing代码,因此迁移到JavaFX的层次结构不是一个选项(重写为本机代码/ OpenGL会更简单)。我们希望得到PerspectiveTransform的支持,而新的Canvas类看起来很有趣。
是否可以将PerspectiveTransform效果与Canvas类一起使用并将其应用于其中的元素?
我知道我可以将透视应用于整个画布,但是我想将它应用于我正在绘制的一些元素(类似于在Java2D中应用仿射变换的方式)。
答案 0 :(得分:1)
PerspectiveTransform只能作为整体应用于画布,而不能应用于Canvas内的元素。
PerspectiveTransform效果适用于节点。虽然画布本身是一个节点,但绘制到画布本身的指令不是节点。
画布允许您set an affine transform将其应用于画布的后续绘图说明,但透视变换是非仿射变换,因此对您没有帮助。
一些备选方案(可能适用于您的情况也可能不适用):
如果您对将代码从AWT / Swing Graphics2D移植到JavaFX GraphicsContext感兴趣,以下问题可能会有用:Interoperability between Graphics2D and GraphicsContext。