CGAffineTransformMakeRotation растягивает мое изображение, что я делаю не так?

У меня есть изображение, показывающее на карте северный путь. Это изображение обновляется 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 преобразует координаты широты и долготы в координаты x / y на моей карте. Положение изображения правильное, но вращение вызывает странные эффекты. Для 0 en M_PI изображение правильное, но между ними изображение растягивается, как будто оно также вращается вокруг оси z, а в M_PI / 2 и 3 * M_PI / 2 оно полностью исчезает. Может ли кто-нибудь объяснить, что происходит и что я делаю неправильно?

8
задан Vincent Osinga 6 February 2011 в 21:53
поделиться