gpt4 book ai didi

ios - 如何用IOS检测手指大小?

转载 作者:可可西里 更新时间:2023-11-01 03:26:32 28 4
gpt4 key购买 nike

是否可以在 IOS 应用程序中检测手指大小?我已阅读文档:

Notes: A finger on the screen affords a much different level of precision than a mouse pointer. When a user touches the screen, the area of contact is actually elliptical and tends to be offset below the point where the user thinks he or she touched. This “contact patch” also varies in size and shape based on which finger is touching the screen, the size of the finger, the pressure of the finger on the screen, the orientation of the finger, and other factors. The underlying Multi-Touch system analyzes all of this information for you and computes a single touch point.

来源:https://web.archive.org/web/20121120152010/http://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html

那么,这是否意味着 SDK 无法检测物理手指大小?我想要完成的事情:我的 OpenGL ES 应用程序中需要虚拟“按钮”。如果有人像握游戏 handle 一样握住 iPhone,他可能会用一根手指按两个按钮(从拇指上滚下来)。我希望它能理解我的意思...

有什么想法吗?

最佳答案

@fichek 是对的,没有固定的方法来获取指尖的大小。

但是,我在之前的项目中使用了一种“奇怪”的方式来做到这一点,而且它确实有效;-)

1.告诉我们的用户将两根手指并拢放在屏幕上,越近越好(就像 Mac 上的双指滚动手势): enter image description here

2.在touchesBegan:withEvent:方法中从UITouches获取两个CGPoints

3.现在我们有了 CGPoint fingertip1centerfingertip2center,所以:

float fingertip_Diameter=fabsf(fingertip1center.x-fingertip2center.x);

4.手指非常靠近,我们可能会忽略宽度上的微小差异,因此 dX == 单个手指的实际宽度

5.width(dX)和fingertipsize是成正比的,我们可以简单的用

float fingertip_Size=M_PI*(dX/2)*(dX/2);

或找到更好的算法来满足您的需求;-)

6.一旦我们得到尺寸(实际上我们只关心直径),很容易实现通过测试各种包围点来优化触摸的方法,例如:

#define kTestLevelOne 5 //Testing 5 points:origin,left,right,up,down
#define kTestLevelTwo 9 //And the other 4 corners
-(BOOL)testSurroundingPoints:(CGPoint *)pt
{
float prob_x[kTestLevelTwo]={0,-dX/2,dX/2,0,0,-dX/2,-dX/2,dX/2,dX/2};
float prob_y[kTestLevelTwo]={0,0,0,dX/2,-dX/2,dX/2,-dX/2,dX/2,-dX/2};

for(int i=0;i<kTestLevelTwo;i++)
{
if([self gotItAtX:pt.x+prob_x[i] andY:pt.y+prob_y[i]]==YES)
{
NSLog(@"Got It!");
Return YES;
//Or break; We don't need to try more points!
}
}
return NO;
}

希望这些能帮到你!

一超峰记

关于ios - 如何用IOS检测手指大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6842855/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com