ios - 处理小物体上的手指检测

标签 ios opengl-es-2.0 detection

我正在处理的应用程序需要 4 像素的条形高度和全屏尺寸宽度。我需要能够选择这个 4px 条并移动它。我也不能改变这个栏的大小,它的高度必须是 4px。

如果我不使用 OpenGL 创建对象,这将不是什么大问题。 OpenGL 显然没有自己的选择功能,所以我需要自己编程。

最初经过研究,我构建了一个颜色选择器来识别对象。我的颜色选择器是如何工作的 xy我的手指触摸从 touchesBegan: 返回是我从 OpenGL View 的屏幕截图中抓取的像素。问题在于手指的位置根本不精确。如果我用鼠标,它就完美了……

我决定也许循环通过所选 x 的缓冲区和 y但不幸的是,当图像存储在内存中并且缓冲区返回我的对象​​颜色的几种阴影时,OpenGL View 的屏幕截图会发生抗锯齿。我可以做一个比较颜色查找,看看它是否在颜色范围内,但这似乎过于复杂,因为我已经做了多少。另外,通过缓冲区骑自行车并不快。

我也想过也许只是记住我的线条在屏幕上的位置,如果我的手指靠近那个位置,就知道那是我想要选择并移动它的那个位置。

这个应用程序的 future 最多可以有 4 行,就像这样,我想要更安全的东西,而不是只知道它在内存中的位置。

有什么更好的方法来处理小对象的选择?

最佳答案

如何为四个对象维护一个框架数组,但将高度扩展到更易于管理的高度(8px 或更大)?然后,可以将较大区域内的触摸与数组进行比较(使用 CGRectContainsPoint)。如果命中,则在开始拖动之前“对齐”较小 (4px) 矩形的中心点。

我通过维护拖放的“放置目标”列表来做类似的事情,当它非常接近时它会捕捉到放置目标。不知道我是否很好地传达了这个想法,但它应该可以工作。

如果四个 4px 矩形将是连续的或非常靠近的,您必须能够使所选的一个突出,否则用户将无法分辨他们正在拖动哪个 - 但您可以这样做通过使其更大(可能是 6-8 像素)然后将其放在前面,以便覆盖其相邻的邻居。

我猜更多的是一个想法而不是一个答案。

关于ios - 处理小物体上的手指检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16093241/

相关文章:

OpenCV 2.4.X 使用 WebCam 与 OpenCV 2.1.X 进行正方形检测时速度较慢

ios - Swift 函数中的下划线

ios - Titanium - 在 Apple App store 上上传 iOS 应用程序

android - Android NDK : Nothing being drawn 中的 OpenGL ES 2.0

opencv - 颜色检测opencv

javascript - Javascript 中的 Google Chrome 71 检测

iOS 视频无法播放(播放按钮被划掉)

ios - 在iOS上还原Microsoft Band连接

android - 在设备上安装 apk 时出现“权限被拒绝”错误

opengl - 如何在 openGL 中安装扩展?