如果你正朝东(90度),水平罗盘看起来就像这样。
85----90---95如果你正面临西北方向355度的问题,它应该是这样的:
350----355---0当你转动指南针时,这个数字应该从0 -> 360 -> 0开始循环。
所以,我的问题是,您将如何在iPhone上实现这样的视图?我有几个想法:
你会怎么解决这个问题?我主要是寻找算法的建议,但如果你有代码或伪代码演示,这也是有帮助的。
发布于 2010-03-27 05:14:30
选项一是最简单的。请记住,您可以合成图像的一部分,以处理包装。
发布于 2011-02-11 10:11:10
以下是在iPhone 4中实现水平罗盘的完整解决方案
if ([CLLocationManager locationServicesEnabled] && [CLLocationManager headingAvailable])
{
m_locationManager=[[CLLocationManager alloc]init];
m_locationManager.desiredAccuracy=kCLLocationAccuracyBest;
m_locationManager.headingOrientation=CLDeviceOrientationPortrait;;
m_locationManager.delegate=self;
[m_locationManager startUpdatingHeading];
}pragma标记CLLocationManagerDelegate方法
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
CLLocationDirection direction= newHeading.magneticHeading;
[m_readingsLabel setText:[NSString stringWithFormat:@"Degrees:%f",direction]];
float radians=direction*M_PI/180;
m_compassImageView.transform=CGAffineTransformMakeRotation(radians);
}发布于 2010-03-27 15:51:31
您可以构建标题的模块10,并为10、5和所有其他部分切换。
https://stackoverflow.com/questions/2527829
复制相似问题