我想知道是否有某種方法可以檢測當前繪製的路徑是否觸及/穿過現有路徑。現有路徑不是繪製就是背景圖像的一部分。 這也將是有幫助的,如果我能夠在之後找到這個,則當前路徑被完全繪製。 在最糟糕的情況下,我可以進行逐像素檢查以查看兩條路徑是否正在接觸?在Android中檢測重疊路徑
回答
使用路徑定義行,然後將android.graphics.Region設置爲該路徑。後來覈對對方所有地區它們是否相交或不
region1.op(region2, Op.INTERSECT);
您可以將行保存在List中,然後根據列表中的每一行檢查您正在繪製的行,看看它是否相交。你會發現很多關於如何在stackoverflow中檢測線交叉的答案。
ArrayList<Pair<Pair<Integer,Integer>,Pair<Integer,Integer>>> lineList = new ArrayList<Pair<Pair<Integer, Integer>, Pair<Integer, Integer>>>();
// add all your lines to the list
// lineList.add(line);
// handle the last line
int startX = 10;
int startY = 20;
int endX = 40;
int endY = 50;
Pair<Integer,Integer> lineStart = new Pair<Integer, Integer>(startX, startY);
Pair<Integer,Integer> lineEnd = new Pair<Integer, Integer>(startX, startY);
Pair<Pair<Integer,Integer>,Pair<Integer,Integer>> lastLine = new Pair<Pair<Integer, Integer>, Pair<Integer, Integer>>(lineStart, lineEnd);
for(Pair<Pair<Integer,Integer>,Pair<Integer,Integer>> l: lineList){
// if "lastLine" intersects "l" do you stuff
}
我想知道如何在列表中保存一行。我保存線的所有像素的座標? – deeJ 2012-04-12 09:14:24
只保存一對配對。 int startX = 10; int startY = 20; int endX = 40; int endY = 50; Pair
這不適用於曲線,對吧?如果問題沒有暗示,我很抱歉。 – deeJ 2012-04-12 10:12:18
- 1. SVG路徑檢測重疊或封閉的形狀
- 2. 檢測重疊ticklabels
- 3. 檢測路徑中的URL
- 4. SVG路徑檢測
- 5. Android - 複雜拖動的檢測路徑
- 6. 在iOS中沿路徑檢測繪圖
- 7. 在Android上使用BoofCV檢測視頻中的路徑
- 8. 檢測重疊事件
- 9. 當SKPhysicsBodies重疊檢測
- 10. 檢測路徑是絕對路徑還是相對路徑
- 11. WPF路徑碰撞檢測?
- 12. SVG路徑接近檢測
- 13. 如何檢查2個WPF路徑(使用MatrixTransform)是否重疊
- 14. SVG路徑內圈壞重疊
- 15. 如何檢測類路徑中的重複JAR?
- 16. 重定向* /測試/ *在httpd.conf中*/* [拆卸/測試/路徑]
- 17. 檢查路徑在其路徑
- 18. 測試路徑無法檢查文件夾路徑
- 19. iOS:UIImagePickerController重疊屬性檢測CameraSource更改
- 20. 檢測視圖是否重疊
- 21. Opengl:像素重疊(碰撞檢測)
- 22. 尋找UIImageViews重疊檢測指南
- 23. jQuery檢測重疊多個部分
- 24. 檢測Sprite的GameObject的完全重疊
- 25. 如何檢測視圖上的重疊?
- 26. 如何檢測模糊的DST重疊?
- 27. 如何檢測兩個UIImageView重疊?
- 28. 如果枚舉節點檢測重疊
- 29. wordpress檢測插件路徑到根
- 30. 2D遊戲的障礙路徑檢測
添加一個鏈接到它的外觀截圖和最新看到了一些引用有助於澄清事情有點。 – erbsman 2012-04-12 12:38:46
添加屏幕截圖。 – deeJ 2012-04-12 14:36:45