2010-02-24 2 views
0

이미지 스케일링 및 번역을 함께 수행하고 싶습니다. 어떻게 가능합니까?내 응용 프로그램에서 스케일링 및 번역을 함께 수행 하시겠습니까?

+0

여기에 더 많은 정보를 제공해야합니다. OpenGL에 문제가 있습니까? 당신의 기하학은 무엇입니까? 정확히 당신이 달성하고자하는 변환의 결과는 무엇입니까? –

+0

실제로 나는 차의 이미지가 하나 있는데, 나는 한 지점에서 다른 지점으로 여행 할 때 크기가 변경되어야한다고 (증가). –

답변

0

두 개의 감지 된 멀티 터치 지점에서 이미지의 새로운 모서리를 만듭니다. 물론 회전 또는 종횡비를 고정시켜야합니다. (이론적으로 회전보다는 종횡비가 엉망이 될 수 있지만 종횡비가 아닌 회전이 변경되기를 원할 것입니다.)

즉 touchesBegan 및 touchesMoved를 재정 의하여 초기 위치 (시작 부분)를 저장하고 이동, 변환 및 확대/축소 (이동 됨)를 계산하고 CGAffineTransform을 생성하여 imageView에 적용합니다.

+0

사실 나는 차의 이미지가 하나 있는데, 한 지점에서 다른 지점으로 여행 할 때 크기가 변경되어야한다고 (증가). –

+0

나는 이것을 시험해 보았다. 나 한테 실수 한 부분이 있는지 확인해보기 바란다. 직접 확대 된 이미지를 보여주고 여행을하지만, 둘 다 원한다. [UIView beginAnimations : nil context : nil]; \t [UIView setAnimationDuration : 5.0]; \t \t carImg.transform = CGAffineTransformTranslate (CGAffineTransformIdentity, 20, 20.0); \t carImg.transform = CGAffineTransformScale (carImg.transform, 1.5, 1.5); (carImg.transform, 50, 50); \t carImg.transform = CGAffineTransformScale (carImg.transform, 2.5, 2.5); (carImg.transform, 50, 50); –

+0

원하는 애니메이션 당 한 번 carImg.transform을 설정해야합니다. 따라서 최종 변형을 구축 할 때 임시 변수에 변환의 중간 단계를 저장하거나 각 쌍의 선을 하나로 결합하십시오. carImg.transform = CGAffineTransformTranslate (CGAffineTransformScale (carImg.transform, 2.5, 2.5), 50, 50); – whybird

관련 문제