6

저는 기본 변환 (회전, 축척 등)을 사용하여 잠시 동안 iPhone 앱을 만들었지 만 이제는 좀 더 복잡한 작업을하고 싶습니다.특정 유형의 원근감을 추가하기 위해 UIView에서 CATransform3D를 어떻게 사용합니까?

수학은 실제로 내 가장 강한 점이 아니지만 UIView에 'perspective'를 추가하는 방법에 대해 궁금합니다 (아래 이미지 참조). 나는 빨리 .

나는이에 대한 해결책을 유래 주위를 살펴 있었다

, 나는 훌륭하게 작동 How do I apply a perspective transform to a UIView?을 발견 스크린 샷가 포토샵에서 스큐 옵션을 사용하여 조롱 -하지만 내가 해요 정말로 아니다 후에 때문에 왼쪽의 높이 대부분의 가장자리가 오른쪽 가장자리보다 큽니다. .

이 CATransform3D를 수행하는 방법에 대해 알고있는 사람이 있습니까? 그냥 왜곡하려는 경우

alt text http://img594.imageshack.us/img594/4354/perspectivel.png

답변

11

, 당신은 3D 변환이 필요하지 않습니다. 아핀 변환으로 충분합니다.

-(void)drawRect:(CGRect)rect { 
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    CGAffineTransform transform = CGAffineTransformIdentity; 
    transform.b = -0.1; 
    transform.a = 0.9; 
    CGContextConcatCTM(ctx,transform); 
    // do drawing on the context 
} 

이 비슷한 변환이 프로젝트에서 수정 된 사본 & 붙여 넣기,하지만 당신은 조정 매개 변수 a와 b에해야 할 수도 있습니다. 왼쪽에서 오른쪽으로 90도까지 응축하면서 (0.1/0.9) 1에서 9까지 상승합니다 (0.9).

+0

멋진 답변, 정말 고마워요! –

관련 문제