CGAffineTransformMakeRotation dehnt mein Bild, was mache ich falsch?

8

Ich habe ein Bild, das zeigt, wo Norden auf einer Karte ist. Dieses Bild wird von CoreLocation aktualisiert, wenn eine neue Überschrift gefunden wird. Es ist auch an der richtigen Stelle platziert, verwende ich den folgenden Code:

%Vor%

CoreLocationController ist eine Klasse, die die Updates des normalen CoreLocation speichert. Die MapClass transformiert Lat / lng-Koordinaten in x / y-Koordinaten auf meiner Karte. Die Position des Bildes ist korrekt, aber die Drehung verursacht seltsame Effekte. Für 0 und M_PI ist das Bild korrekt, aber zwischen diesen wird das Bild gestreckt, als ob es auch um die z-Achse rotiert wird und bei M_PI / 2 und 3 * M_PI / 2 verschwindet es vollständig. Kann jemand erklären, was passiert und was ich falsch mache?

    
Vincent Osinga 06.02.2011, 21:53
quelle

3 Antworten

14

Ich habe herausgefunden, was falsch war (mehr oder weniger). Wenn Sie die transform-Eigenschaft verwenden, die (aus welchen Gründen auch immer) nicht erlaubt ist, die Position durch Ändern des Rahmens zu ändern, müssen Sie die Eigenschaft center verwenden. Also war der Code am Ende:

%Vor%

Ich hoffe, dass jemand mit dem gleichen Problem meine Antwort findet.

    
Vincent Osinga 07.02.2011, 08:25
quelle
6

Eine andere Lösung:

  1. Setzen Sie die Transformation auf Identität
  2. Ändern Sie den Rahmen
  3. Festlegen der Transformation

In Ihrer Situation sollte es sein:

%Vor%     
HiveHicks 21.08.2012 11:51
quelle
0

Versuchen Sie, die Transformation nach der Größenänderung vorzunehmen? Ordnung kann mit Transformationen zusammenhängen.

    
Hack Saw 07.02.2011 07:03
quelle

Tags und Links