这是我的目标:让用户触摸屏幕上的两个不同点,应用程序将输出一个代表这些点之间距离的数字。我怎么能做到这一点?
答案 0 :(得分: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];
接收多个触摸后),在这种情况下,您可以提取CGPoint
'{{通过从NSSet中提取UITouch es并使用.x
方法获取相关触摸的.y
,可以获得1}}和locationInView
值。
如果您以前没有使用过这些课程,我很想读起来:
但是,如果您之前还没有使用过此类内容,我还建议您阅读Event Handling Guide for iOS文档,以便为您提供良好的基础。 (您可能还想退后一步并使用Creating an iPhone Application文档,因为这些文档会详细介绍(以及源代码)如何捕获触摸事件等。)
答案 1 :(得分:2)
当您收到触摸事件时,您将获得其xy坐标。您可以使用我们在小学阶段学到的公式d = sqrt((x_2 - x_1)^2 + (y_2 - y_1)^2))
。这将获得它们之间的像素距离。 iphone4的亮度为326 ppi,所以你得到的距离为326,你可以估算出以英寸为单位的触摸之间的距离。