2010-02-24 5 views
0

je veux effectuer Scaling et traduction de l'image ensemble alors comment c'est possible?Dans mon application, je veux effectuer Scaling et traduction ensemble?

+0

Vous devez fournir beaucoup plus de contexte ici. Est-ce un problème OpenGL? Quelle est ta géométrie? Exactement quel est le résultat de la transformation que vous essayez d'atteindre? –

+0

En fait j'ai une image de voiture et je veux quand je voyage d'un point à un autre point la taille devrait être changée (augmente). –

Répondre

0

Faites simplement les nouveaux coins opposés de votre image les deux points multitouch détectés. Vous devez garder la rotation ou le rapport d'aspect fixe, bien sûr. (En théorie, vous pourriez jouer avec le rapport d'aspect plutôt qu'avec la rotation, mais vous voulez probablement que la rotation change, pas le rapport d'aspect). Par exemple, remplacez les touchBegan et les touchesMoved pour enregistrer les points initiaux (au début) et calculer la rotation, la translation et le zoom (dans le Moved), et construire une CGAffineTransform à appliquer à l'imageView.

+0

En fait j'ai une image de voiture et je veux quand je voyage d'un point à un autre point la taille devrait être changée (augmente). –

+0

Je l'ai essayé s'il vous plaît vérifier qu'il n'y a aucune erreur faite par moi il montre directement l'image agrandie, puis le voyage, mais je veux les deux. [UIView beginAnimations: nil contexte: néant]; \t [UIView setAnimationDuration: 5.0]; \t \t carImg.transform = CGAffineTransformTranslate (CGAffineTransformIdentity, 20, 20.0); \t carImg.transform = CGAffineTransformScale (carImg.transform, 1.5, 1.5); \t carImg.transform = CGAffineTransformTranslate (carImg.transform, 50, 50); \t carImg.transform = CGAffineTransformScale (carImg.transform, 2.5, 2.5); \t carImg.transform = CGAffineTransformTranslate (carImg.transform, 50, 50); –

+0

Vous devez simplement définir carImg.transform une fois par animation que vous souhaitez. Vous pouvez donc stocker les étapes intermédiaires de la transformation dans une variable temporaire lorsque vous créez la transformation finale, ou combiner chaque paire de lignes en une seule, par exemple. carImg.transform = CGAffineTransformTranslate (CGAffineTransformScale (carImg.transform, 2.5, 2.5), 50, 50); – whybird

Questions connexes