我想知道是否有某种方法可以检测当前绘制的路径是否触及/穿过现有路径。现有路径不是绘制就是背景图像的一部分。 这也将是有帮助的,如果我能够在之后找到这个,则当前路径被完全绘制。 在最糟糕的情况下,我可以进行逐像素检查以查看两条路径是否正在接触?在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. Actionscript 3 - 路径重叠
- 3. SVG路径区域重叠
- 4. LimeJS检测重叠
- 5. 检测重叠ticklabels
- 6. 检测路径中的URL
- 7. SVG路径检测
- 8. Android - 复杂拖动的检测路径
- 9. 在iOS中沿路径检测绘图
- 10. 检测点是否在SVG路径中
- 11. WPF:点击嵌套在路径中的路径检测
- 12. 在Android中检测音频路径变化
- 13. 在Android上使用BoofCV检测视频中的路径
- 14. 检测重叠窗口
- 15. 当SKPhysicsBodies重叠检测
- 16. 检测重叠事件
- 17. 检测路径是绝对路径还是相对路径
- 18. WPF路径碰撞检测?
- 19. SVG路径接近检测
- 20. 如何检查2个WPF路径(使用MatrixTransform)是否重叠
- 21. 自我重叠的svg路径
- 22. SVG路径内圈坏重叠
- 23. OpenCV中重叠的人脸检测
- 24. android gradle测试路径
- 25. swift - 检测路径中的触摸
- 26. 如何检测类路径中的重复JAR?
- 27. 重定向* /测试/ *在httpd.conf中*/* [拆卸/测试/路径]
- 28. 在Facebook上检测到循环重定向路径(详见“重定向路径”部分)
- 29. 检查路径在其路径
- 30. 测试路径无法检查文件夹路径
添加一个链接到它的外观截图和最新看到了一些引用有助于澄清事情有点。 – erbsman 2012-04-12 12:38:46
添加屏幕截图。 – deeJ 2012-04-12 14:36:45