2015-07-20 90 views
1

所以我目前使用Objective C比较两个CGPoint以查看它们是否接近?

CGPoint location = [touch locationInView:self.view]; 

现在我要做的是检查下一个触摸位置,看看位置是接近得到一个触摸的位置,说在x或y轴25分。

有显示如何比较,如果两个触摸是等价的,但有没有计算多点之间的距离几个职位?任何信息都会很棒。

+0

http://stackoverflow.com/questions/1980898/how-to-calculate-two-coordinates-distance -in-objective-c – Ixx

+0

您是否搜索距离和cgpoint?我找到几百个。 – vikingosegundo

回答

5

为了估计两个CGPoints之间的距离,你可以利用简单的毕达哥拉斯式的:

CGFloat dX = (p2.x - p1.x); 
CGFloat dY = (p2.y - p1.y); 
CGFloat distance = sqrt((dX * dX) + (dY * dY)); 
+1

...通常的观察:比较距离25点,不要做'距离<25',跳过平方根(是的,他们仍然是'昂贵的')并且做'squareDistance <25 * 25 '。我不认为你现在可以从这种计算方式转换到曼哈顿距离来获得任何重要的东西。 – Tommy

相关问题