在我的代码中,我创建了一个 java.awt.Rectangle
的实例,其中包含一个角,长度和宽度。然后我在其上应用旋转仿射变换(at)以将其旋转一定角度。
然后我获取矩形的PathIterator并将几何体迭代为:
PathIterator i = rectangle.getPathIterator(at);
while (!i.isDone()) {
double[] xy = new double[2];
i.currentSegment(xy);
}
虽然我预计4分(或者第一名和最后一名可能相同),但我得到的是6分。更令人惊讶的是,最后一点总是(0,0)。 (0,0)不是矩形几何的一部分,但我总是得到它。 这种行为背后的原因是什么?
答案 0 :(得分:0)
检查currentSegment
的返回值。最后一点"将是PathIterator.SEG_CLOSE
类型,记录为:
指定该类型的段类型常量 应通过附加线段来关闭前面的子路径 回到与最近的SEG_MOVETO相对应的点。
与此类型相关联的点数据是隐式的(即路径中的第一个和最后一个点)。 currentSegment
返回SEG_MOVETO
时,没有任何内容写入数组;您在上次调用时看到的点(0,0)是数组在创建时初始化的值。