【发布时间】:2012-11-12 16:29:32
【问题描述】:
我已经做了一个变换并用它渲染了一个多边形对象(网格是多边形类型):
at.setToTranslation(gameObject.position.x, gameObject.position.y);
at.rotate(Math.toRadians(rotation));
at.scale(scale, scale);
g2d.setTransform(at);
g2d.fillPolygon(mesh);
现在我想返回我渲染的确切网格,以便我可以对其进行碰撞检查。唯一的问题是,如果我返回网格,它会返回未转换的网格。所以我尝试将变换设置为多边形对象(网格),如下所示:
mesh = (Polygon)at.createTransformedShape(mesh);
但不幸的是 at.createTransformedShape() 返回的 Shape 只能转换为 Path2D.Double。因此,如果有人知道如何将 Path2D.Double 转换为 Polygon 或知道将转换设置为网格的另一种方法,请提供帮助。
【问题讨论】:
-
您应该指定您正在使用的语言(作为标签),并且可能还指定您正在使用的库。它看起来像 Java + Swing,但许多语言看起来有点像 Java。
-
是的java。对象是 java.awt.geom.AffineTransform 和 java.awt.Polygon
-
我会说 AffineTransform 不知道如何将多边形转换为多边形,所以
createTransformedShape不是要走的路。
标签: java casting transform polygon shape