繁体   English   中英

java.awt.Rectangle的PathIterator始终给出(0,0)

[英]PathIterator for java.awt.Rectangle always gives (0,0)

在我的代码中,我创建了一个java.awt.Rectangle实例,其实例带有一个corner,length和width 然后,在其上应用旋转仿射变换 (),将其旋转一定角度。

然后,我获取矩形的PathIterator并将几何迭代为:

PathIterator i = rectangle.getPathIterator(at);
while (!i.isDone()) {
    double[] xy = new double[2];
    i.currentSegment(xy);
}

虽然我希望得到4分(或者说第一个和最后一个可能是5分),但是我得到的却是6分。 更令人惊讶的是,最后一点总是(0,0)。 (0,0)不是矩形几何的一部分,但我仍然总是得到它。 这种行为背后的原因是什么?

检查currentSegment的返回值。 最后一个“点”将为PathIterator.SEG_CLOSE类型,其记录为:

段类型常量,用于指定应通过将线段添加回对应于最新SEG_MOVETO的点来关闭前面的子路径。

与此类型关联的点数据是隐式的(即,路径中的第一个和最后一个点)。 currentSegment返回SEG_MOVETO时,不写入任何数组; 您在上一次调用中看到的点(0,0)是创建数组时初始化数组的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM