我在Path2D中绘制了一个四边形,我希望它上面有一个图像。更具体地说,我试图将我选择的图像绘制到四边形上的4个不同点。就我而言,它是一个平行四边形。我不希望图像超过paralellogram。看看我想说的更好的方法是看下面的截图。
我希望将图像转换为适合绿色区域。没有剪辑。
我想将图像固定在绿色的paralellogram上。然而。我不希望图像进入蓝色的paralellogram,或者重要的白色空间。
到目前为止,我已经尝试了
Path2D.Double()
个对象上的方法。没有答案感谢。我是java的新手,所以试着宽容吗?
答案 0 :(得分:2)
一种方法是:
自从我完成转换以来已经有一段时间了。您可能必须先设置转换,然后再绘制图像。转换必须先行。
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
g2.transform(AffineTransform.getShearInstance(1.0, 0));
g2.drawImage(image, 0, 0, this);
}
以下是转换如何工作的简单示例。您将不得不花费一些时间来确定使其工作所需的值,或者您是否需要自己手动创建转换矩阵。