java - 获取变换对象的 x 和 y 点

标签 java awt java-2d affinetransform

我正在使用 AffineTransform 变换炮塔的枪管,并且我希望子弹能够从枪管尖端射出。有没有一种方法可以获取这些坐标,或者我必须手动计算它?

转换代码

AffineTransform rotate = AffineTransform.getRotateInstance(rotation, getX() + getWidth()/2, getY() + getHeight()/2);
barrel = rotate.createTransformedShape(new Rectangle(getX() + getWidth()/2, getY() - getHeight()/2, 2, getHeight()/2 + 1));

项目符号代码

int dx = getX() - o.getX();
int dy = o.getY() - getY();
bullets.add(new Bullet((int)barrel.getBounds2D().getX(), (int)barrel.getBounds2D().getY(), SPEED, new NVector(dx, dy)));

最佳答案

使用相同的变换(旋转)来变换桶尖的坐标:

rotate.transform(tipOfTheBarrel, transformedTipOfTheBarrel);

关于java - 获取变换对象的 x 和 y 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13986610/

相关文章:

java - 两个标签位于中心的中间

Java2D 帮助显示填充图像

java - GUI 中的可调圆

java - java如何捕获java内部的退出代码?

java - 在java中生成随机数,使其平均值为特定值

java - 在列表中组织 JPanel 的最佳方式是什么?

java - fragment 中的 setListAdaptor 错误

java - 将滚动条添加到 jframe 网格

java - 为什么子 JComponent 没有调用 Paint(Graphics g)?

java - getClipBounds 与 JScrollPane 结合使用错误