문제

내 usercase 아이폰 응용 프로그램 내가 애니메이션에서 규모,회전과 번역의 이미지입니다.

그래서,concat 모든 것이 변환 시설,그러나 한가지 문제가:

이후 나는 이미지 크기에 따라,그것은 문제를 배치합니다.내가 사용하는 반전 y 축 좌표계,가까운 이미지를 정확히 위치에서 60 에 있는 픽셀을 나타냅니다.

그래서,어떻게 변경하에서 원래의 데카르트 y 축을 역 y 축의 관점?

도움이 되었습니까?

해결책

로 smacl 포인트는 가장 쉬운 방법은 이렇게 변화의 기원은 아래 화면의 왼쪽을 사용하여(screenheight-viewheight-y)을 대신 y 에서의 기원입니다.

그러나,당신이 할 수립 좌표계의 기본 뷰에서 레이어를 사용하여 CATransform3D.내가 이렇게 할 수 있도록 공유하는 동일한 핵심 애니메이션 CALayer 레이아웃의 코드 간에 내 아이폰 응용 프로그램 및 Mac 클라이언트(아이폰을 반전의 정상적인 석영에 대한 좌표계 CALayers 의 일치하 UIViews).당신이해야 할 모든 당신이 사용하려면 이것은 장소 라인

self.layer.sublayerTransform = CATransform3DMakeScale(1.0f, -1.0f, 1.0f);

에서 초기화를 위한 코드 레이어에 호스팅 UIView.을 기억하는 것이 뒤집어 CALayers,그래서 어떤 UIKit 텍스트 렌더링에서 레이어가해야 할 수도 있습 반전 유사한 코드를 사용하여 다음과 같다:

CGContextSaveGState(context);
CGContextTranslateCTM(context, 0.0f, self.frame.size.height);
CGContextScaleCTM(context, 1.0f, -1.0f);

UIFont *theFont = [UIFont fontWithName:@"Helvetica" size:fontSize];
[text drawAtPoint:CGPointZero withFont:theFont];

CGContextRestoreGState(context);

당신이 할 수 있는 비슷한 정렬이 사용하여 반전 CGAffineTransform,하지만 당신은 또한 적용해야는 번역하는 작업:

CGAffineTransform flipTransform = CGAffineTransformMakeTranslation(0.0f, self.frame.size.height);
flipTransform = CGAffineTransformScale(flipTransform, 1.0f, -1.0f);

당신이 사용할 수 있는 유사 변환로 변환하의 원산지를 사용하여 좌표 CGPointApplyAffineTransform().

다른 팁

y = top-y, 여기서 탑은 당신이 그리는 경계 상자의 상단의 y undentine입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top