【发布时间】:2011-06-22 10:22:09
【问题描述】:
我有一张图片,显示地图上哪条路是北方。如果找到新标题,CoreLocation 会更新此图像。它也被放置在正确的位置,我使用以下代码:
locateMeView.transform = CGAffineTransformMakeRotation(([CoreLocationController sharedInstance].heading - 45) * M_PI / 180);
CGRect frame = locateMeView.frame;
CGPoint pos = [MapClass vectorForLocation:[CoreLocationController sharedInstance].location mapCenter:curLocation zoom:curZoom];
frame.origin.x = (int)(self.view.bounds.size.width/2 + pos.x - frame.size.width / 2);
frame.origin.y = (int)(self.view.bounds.size.height/2 + pos.y - frame.size.height / 2);
frame.size.width = 24;
frame.size.height = 24;
locateMeView.frame = frame;
CoreLocationController 是一个存储正常 CoreLocation 更新的类。 MapClass 将 lat/lng 坐标转换为我地图上的 x/y 坐标。图像的位置是正确的,但旋转会产生奇怪的效果。对于 0 en M_PI,图像是正确的,但在这些图像之间,图像被拉伸,好像它也围绕 z 轴旋转,在 M_PI/2 和 3 * M_PI/2 处,它完全消失了。有人可以解释发生了什么以及我做错了什么吗?
【问题讨论】:
标签: iphone objective-c transform