我正在创建一个天际线游戏作为一个有趣的辅助项目,当我开始对建筑物的墙壁进行纹理处理时遇到了麻烦,我目前只是在该区域绘制一个多边形,但我想知道是否有纹理它的方法是这样的纹理:
可以这样渲染:
这是游戏的图像,我想要纹理的部分是建筑物的灰色墙壁。
我知道我可以通过创建一个单独的渲染系统来逐个像素地绘制它,但我试图避免这种情况。
我的具体问题是 Java 的 Graphics 中是否存在可以实现此目的的方法或类似的方法。
如果您想执行剪切变换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
....
}