是否可以仅使用图形将纹理映射到类似于 OpenGL 的四边形?

Is it possible to map a texture to quads similar to OpenGL with just Graphics?

我正在创建一个天际线游戏作为一个有趣的副项目,当我开始对建筑物的墙壁进行纹理处理时遇到了麻烦,我目前只是在该区域绘制一个多边形,但我想知道是否有一种方法可以使它的纹理像这样:

可以这样渲染:

这是游戏的图片,我要贴图的部分是建筑物的灰色墙壁。

我知道我可以通过创建一个单独的渲染系统逐个像素地绘制它来做到这一点,但我正在努力避免这种情况。

我的具体问题是 Java 的图形或类似的东西中是否存在可以实现此目的的方法。

如果你想执行剪切变换AffineTransformation是你的解决方案。

AffineTransform at;

double shx, shy;
at.shear(shx, shy);

在绘制图像时使用 AffineTransformation - 遗憾的是,您必须为此目的使用 Graphics2D 并不那么明显

@Override
public void paintComponent(Graphics g){
    Graphics2D g2d = (Graphics2D)g;
    BufferedImage img = ...;
    AffineTransform at = ...;
    g2d.drawImage(img, at, null);//null-param is the ImageObserver
    ....
}