我该如何在Xcode中输出iOS触摸点之间的距离?

4

我的目标是:让用户在屏幕上触摸两个不同的点,应用程序将输出表示这些点之间距离的数字。我该如何实现?

2个回答

11

在简单的层面上,你可以采用勾股定理的方法来计算两点之间的距离,具体如下:

double distance = sqrt(pow((x2 - x1), 2.0) + pow((y2 - y1), 2.0));

我假设您正在使用 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 方法(在注册为UIResponder并通过[self setMultipleTouchEnabled:YES];接收多个触摸的情况下),在这种情况下,您可以从NSSet中提取UITouch 并使用locationInView方法获取有关该触摸的CGPoint 以提取.x .y 值。

如果您之前没有使用过这些类,我建议您阅读以下内容:

然而,如果你之前没有使用过这些东西,我也建议你阅读一下iOS事件处理指南文档,以便让你有一个良好的基础。 (你可能还想退后一步,消化创建iPhone应用程序文档,因为这些文档详细介绍了如何捕获触摸事件等内容,并提供了源代码)。

谢谢回复。我对这个还是新手;之前只做过声音板。这是我第一个真正的应用程序。你知道在哪里可以找到相关教程吗? - Mike Cadigan
@Mike 我已经更新了我的答案,并添加了一些额外的参考资料,希望能对你有所帮助。(你可能还想退后一步,阅读创建iPhone应用程序文档,因为它详细介绍了如何捕获触摸事件等内容(以及源代码)。) - John Parker

2

当您接收到触摸事件时,会得到它的xy坐标。您可以使用我们在小学中学到的公式d = sqrt((x_2 - x_1)^2 + (y_2 - y_1)^2))。这将为您获取它们之间以像素为单位的距离。iPhone4具有326 ppi,因此将获得的距离除以326,您就可以估算出触摸之间的距离(以英寸为单位)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接