JavaFXCanvas:Make image";“平坦”;

JavaFXCanvas:Make image";“平坦”;,javafx,Javafx,在JavaFX画布中使用GraphicsContext是否可以选择在(3D)y轴上旋转图像 我考虑应用仿射变换。可悲的是,我只走了那么远,我能够剪切和旋转的图像,这并没有在我寻找的角度结果 多亏了“费边” 解决方案是透视变换() 例如,此代码返回所需效果的变换 static PerspectiveTransform getTransform(double x, double y, double width) { double hf = 0.3; // Height Factor

在JavaFX画布中使用GraphicsContext是否可以选择在(3D)y轴上旋转图像

我考虑应用仿射变换。可悲的是,我只走了那么远,我能够剪切和旋转的图像,这并没有在我寻找的角度结果

多亏了“费边”

解决方案是透视变换()

例如,此代码返回所需效果的变换

    static PerspectiveTransform getTransform(double x, double y, double width) {

    double hf = 0.3; // Height Factor (0 < hf < 1)
    double df = 0.2; // Deepth-Factor (0 < df < 0.5)

    double heightDif = (1 - hf) * width;

    PerspectiveTransform pt = new PerspectiveTransform();

    pt.setUlx(x + (df * width));  // upper left x
    pt.setUly(y + heightDif);  // upper left y

    pt.setUrx(x + width - (df * width));  // upper right x
    pt.setUry(y + heightDif);  // upper right y

    pt.setLlx(x);  // lower left x
    pt.setLly(y + width * hf + heightDif);  // lower left y

    pt.setLrx(x + width);  // lower right x
    pt.setLry(y + width * hf + heightDif); lower right y
    return pt;
}
静态透视变换getTransform(双x、双y、双宽度){
双hf=0.3;//高度系数(0
可以通过执行
canvas.getGraphicsContext2D().setEffect(getTransform(…))来应用转换

在x和y处绘制的任何正方形图像都将像图中所示那样弯曲