检查用户触摸的点是否有圆圈

时间:2017-08-14 06:18:09

标签: android opencv

我有一个代码,在将图像传递给函数后会自动绘制一些圆圈,其中一些圆圈是使用drawcircle()手动绘制的。现在,我想看到当用户触摸一个点时,如果已经存在一个圆圈,则隐藏/删除它。 enter image description here

有任何潜在客户吗?

1 个答案:

答案 0 :(得分:1)

如果所有圆圈都被画圈淹没了。然后将所有圆圈的坐标存储在列表中,然后按区域检查单击的位置。如果region包含坐标,则click位于圆圈内,否则它位于Canvas.Below上的某个位置,它返回单击圆圈的索引。

 private int findPointAt(int x, int y) {
   if(dotsList!=null) {
       if (dotsList.isEmpty()) {
           return -1;
       }
       final int width = circleRadius * 2;
       final Region r = new Region();
       for (int i = 0; i < dotsList.size(); i++) {
           final int pointX = dotsList.get(i).x;
           final int pointY = dotsList.get(i).y;
           r.set(pointX - width, pointY - width, pointX + width, pointY + width);
           if (r.contains(x, y)) {
               selectedPosition = i;
               return i;
           }
       }
   }
   return -1;

}

如果返回-1,则单击在外面,否则返回圆的索引。