将多边形转换为区域将返回空白区域

时间:2016-08-07 10:14:40

标签: java

在我的应用程序中,我广泛使用java.awtjava.awt.geom来检测碰撞等。但突然间我遇到了一个我无法理解的问题。当我尝试将多边形转换为区域时,返回的区域为空。这是一个显示行为的片段:

System.out.println("Room: " + this.roomGeometry.getBounds2D().getMinX() + ", " + this.roomGeometry.getBounds2D().getMaxX() + ", " + this.roomGeometry.getBounds2D().getMinY() + ", " + this.roomGeometry.getBounds2D().getMaxY());

Area t1 = new Area(this.roomGeometry);
System.out.println("Room: " + t1.getBounds2D().getMinX() + ", " + t1.getBounds2D().getMaxX() + ", " + t1.getBounds2D().getMinY() + ", " + t1.getBounds2D().getMaxY());

此代码段的输出为:

Room: -20.0, 20.0, 0.0, 50.0
Room: 0.0, 0.0, 0.0, 0.0

有人可以解释为什么会这样吗?

编辑:使用以下代码在XML解析函数中设置多边形:

int b_xvals[] = getIntArrayFromString(b.getElementsByTagName("xvals").item(0).getTextContent());
int b_yvals[] = getIntArrayFromString(b.getElementsByTagName("yvals").item(0).getTextContent());
game.setRoomGeometry(new Polygon(b_xvals,b_yvals,b_xvals.length));

我已经检查过,数组包含正确的值。

0 个答案:

没有答案