我如何输出Xcode for iOS中两个触摸点之间的距离?

这是我的目标:让用户触摸屏幕上的两个不同点,应用程序将输出一个代表这些点之间距离的数字。 我怎么能做到这一点?

在一个简单的层面上,您可以简单地使用如下的毕达哥拉斯定理方法来计算两点之间的距离。

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

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

如果您以前没有使用过这些课程,我很想读一读:

  • UIResponder类参考
  • UITouch类参考

但是,如果您之前还没有使用过此类内容,我还建议您阅读“iOS事件处理指南”文档,以便为您提供良好的基础。 (您可能还想退后一步并使用创建iPhone应用程序文档,因为这些文档会详细介绍(以及源代码)如何捕获触摸事件等)

当您收到触摸事件时,您将获得其xy坐标。 你可以使用我们在小学里学到的公式, d = sqrt((x_2 - x_1)^2 + (y_2 - y_1)^2)) 。 这将获得它们之间的像素距离。 iphone4的亮度为326 ppi,所以你得到的距离为326,你可以估算出以英寸为单位的触摸之间的距离。