gpt4 book ai didi

java - 将图像绘制到 4 个不同的点

转载 作者:行者123 更新时间:2023-12-02 03:33:00 25 4
gpt4 key购买 nike

我在 Path2D 中绘制了一个四边形,我希望上面有一个图像。更具体地说,我试图将我选择的图像绘制到四边形上的 4 个不同点。就我而言,它是一个平行四边形。我不希望图像超出平行四边形。了解我想说的内容的更好方法是查看下面的屏幕截图。

我希望将图像转换为适合绿色区域。未剪辑。

screenshot

我希望将图像固定在绿色平行四边形上。然而。我不希望图像进入蓝色平行四边形或重要的空白区域。

到目前为止我已经尝试过

  • 正在研究一种将图像直接放置到 Path2D.Double() 对象上的方法。没有答案
  • 旋转图像以适合平行四边形。没用。
  • 在java中使用AffineTransform。不明白;-;

谢谢。我是java新手,所以请宽容点吗?

最佳答案

一种方法是:

  1. 创建一个单独的 BufferedImage。
  2. 对新图像应用变换。
  3. 将您的图像绘制到新图像上。
  4. 使用绿色区域的 Shape 对象作为主绘图区域上的剪辑
  5. 将变换后的图像绘制到主绘图区域。

我已经有一段时间没有进行转换了。您可能必须先设置变换,然后再绘制图像。 变换必须先行。

public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
g2.transform(AffineTransform.getShearInstance(1.0, 0));
g2.drawImage(image, 0, 0, this);
}

这是一个说明转换如何工作的简单示例。您将不得不花一些时间来弄清楚需要哪些值才能使其工作,或者您是否可能需要自己手动创建转换矩阵。

关于java - 将图像绘制到 4 个不同的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37820195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com