Java PathIterator是否以順時針或逆時針順序爲您提供多邊形的點?Java PathIterator順時針或逆時針?
回答
它按點在多邊形中定義的順序「走」。考慮下面的代碼示例我剛颳起:
c:\files\j>java ShapeTest
Walking clockwise
Currently at: 2.0 5.0
Currently at: 4.0 4.0
Currently at: 4.0 1.0
Currently at: 0.0 1.0
Currently at: 0.0 3.0
Walking counter-clockwise
Currently at: 0.0 3.0
Currently at: 0.0 1.0
Currently at: 4.0 1.0
Currently at: 4.0 4.0
Currently at: 2.0 5.0
由
import java.awt.Polygon;
import java.awt.geom.PathIterator;
class ShapeTest {
/**
* Use points to make a pentagon
. 2,5
0,3 . . 4,3
0,1 . . 4,1
*/
public static void main(String...args) {
// from the top clockwise
int[] xClock = new int[] { 2,4,4,0,0 };
int[] yClock = new int[] { 5,4,1,1,3 };
// the reverse order from the clockwise way
int[] xCounter = new int[] { 0,0,4,4,2 };
int[] yCounter = new int[] { 3,1,1,4,5 };
Polygon clock = new Polygon(xClock, yClock, 5);
Polygon counter = new Polygon(xCounter, yCounter, 5);
int index = 0;
System.out.println("Walking clockwise");
PathIterator clockIter = clock.getPathIterator(null);
while(!clockIter.isDone() && index < clock.npoints) {
float[] coords = new float[6];
clockIter.currentSegment(coords);
System.out.println("Currently at: " + coords[0] + " " + coords[1]);
clockIter.next();
index++;
}
index = 0;
System.out.println("Walking counter-clockwise");
PathIterator counterIter = counter.getPathIterator(null);
while(!counterIter.isDone() && index < counter.npoints) {
float[] coords = new float[6];
counterIter.currentSegment(coords);
System.out.println("Currently at: " + coords[0] + " " + coords[1]);
counterIter.next();
index++;
}
}
}
爲了記錄,我不知道爲什麼那些'0.0 0.0'部分出現。如果有人知道並且可以編輯並發表評論,我會很感激...這僅僅是一個簡單的例子,所以我沒有太多投入,但是是的... – corsiKa 2012-07-06 16:59:04
那麼,你知道什麼?一年半後,有人過來,「等等,這是不正確的......」並修復它!真棒。 – corsiKa 2014-01-31 03:44:34
只是一個額外的說明。我測試過,看起來如果你從一個路徑創建一個Area並從中獲得PathIterator,那麼它總是CCW。 – clankill3r 2015-02-12 10:07:37
- 1. CSS3 - 順時針旋轉比逆時針
- 2. 目標C CATransform3DMakeRotation順時針/逆時針
- 3. 順時針/逆時針旋轉圖像
- 4. 多邊形頂點 - 順時針或逆時針
- 5. 識別順時針或逆時針旋轉
- 6. 查找QDial是否順時針或逆時針旋轉
- 7. Flash CS4:順時針或逆時針旋轉對象
- 8. 查找射線是順時針逆時針還是非逆時針算法
- 9. 電弧是順時針還是逆時針?
- 10. 帶8弧的圓弧svg順時針和逆時針旋轉
- 11. iphone開發 - UIRotationGestureRecognizer(順時針和逆時針檢測)?
- 12. jQuery:以90度增量順時針/逆時針旋轉圖像?
- 13. 如何在android中順時針和逆時針旋轉圖像?
- 14. 順時針和逆時針方向旋轉圖像
- 15. 檢測手勢是順時針還是逆時針
- 16. 順時針和逆時針直流電機在Matlab中Simulink
- 17. 轉換逆時針多邊形順時針一個
- 18. JQuery-順時針旋轉div並逆時針旋轉
- 19. 不同的行爲填補順時針和逆時針路徑
- 20. 如何順時針和逆時針旋轉圓圈?
- 21. 用CGAffineTransformIdentity逆時針轉爲順時針方向
- 22. d3圓弧轉換逆時針不順時針
- 23. 如何在android中執行順時針和逆時針手勢
- 24. 使用javascript在div內順時針或逆時針旋轉圖像
- 25. 將三維共麪點的列表排序爲順時針或逆時針
- 26. 如何順時針或逆時針旋轉圖像,以較短者爲準?
- 27. 的UIImageView如何跟蹤順時針或逆時針用戶運動
- 28. 以逆時針順序播放
- 29. 排序的一組在順時針/逆時針順序3-d點
- 30. 使用WPF故事板順利順時針轉爲逆時針模式
產生按照'PathIterator' API, '迭代器移動到沿着路徑轉發的下一段只要在那個方向上有更多的點,主要的遍歷方向。' – 2012-07-06 16:37:17