2011-10-11 105 views
4

我需要计算iOS中两点之间的距离。我可以保证至少有一台iPhone 4,因此相机的图像质量应该很好。这个想法是计算到使用图片的点的距离。有一个名为easyMeasure的应用程序,它完全符合我需要做的事情。在iOS中测量/计算距离

我与毕达哥拉斯确定,但这让我难以置信。我会如何做这样的事情?

+0

除了easyLevel,还有http://itunes.apple.com/us/app/site-survey/id357934015?mt=8。我理解这项技术,但是我只是在寻找反正弦或者最好是为手机获得某种硬件设备? – Echilon

+0

我相信我有一个可行的解决方案,但它可能需要一些视觉演示。我应该在几个小时内得到答案,一旦我回家,我就可以创作。我在美国东部时间7点左右离开学校,也许8点半到9点我会试着回答问题吗? – Jumhyn

+0

@Echilon你有没有做过。你能帮我完成吗?我必须做类似的事 –

回答

4

好的,所以你是正确的,你需要使用正弦等。首先,您需要找到iPhone相机的镜头角度。要做到这一点,将摄像机放在距墙壁已知距离的地方,并测量距离视野边缘到另一边的距离,然后除以二。要在下图中找到θ,使用tanθ= opposite/adjacent,所以反tan(相反/相邻)=θ。

Picture 2

一旦你知道,你就必须在用户拍照,并给在屏幕上大的东西怎么真的是一个测量。然后,只需使用tanθ= opposite/adjacent,并且由于您现在知道θ和相反的距离,相邻=相对/tanθ。

Picture 1

希望帮助!

+0

我相信会做我需要的。谢谢! – Echilon

+0

我想计算iPhone相机两点之间的距离。我解释你,我想要什么。假设我站在距离物体10英尺远处的iPhone(带摄像头)上。所以我的两个物体离我10英尺远(相机)。 现在我想要计算距离摄像机10英尺远的两个物体之间的距离。这两个物体在直线上。那么我如何计算两点之间的距离? – Hitarth

0

ios7的新更新
@import CoreLocation; @import MapKit;

CLLocation *sanFrancisco = [[CLLocation alloc] initWithLatitude:37.775 longitude:-122.4183333]; 
CLLocation *portland = [[CLLocation alloc] initWithLatitude:45.5236111 longitude:-122.675]; 
CLLocationDistance distance = [portland distanceFromLocation:sanFrancisco]; 

MKDistanceFormatter *formatter = [[MKDistanceFormatter alloc] init]; 
formatter.units = MKDistanceFormatterUnitsImperial; 
NSLog(@"%@", [formatter stringFromDistance:distance]); // 535 miles