簡體   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