사용자가 특정 점을 터치하고 고정 할 때 전체 점이 변형되어 그 점이 아래로 밀렸다는 환상을 만들 수있는 효과를 생성하려고합니다. "(보기는 2D 임). 수학은 상대적으로 단순 해 보입니다. CALayer의 각 점은 압력 점을 향해 포인트를 반대로 이동합니다 (이 단계에서 프레임이이 변형에 미치는 영향은 무시됩니다). 평면을 위에서 볼 때만 제 3 공간 차원으로 변형시키는 질량을 지닌 2D 평면에서 일반 상대성 이론을 나타내는 고전 모델을 생각해보십시오.CALayer 압력 변형 효과
이 시점에서 나는 원래 레이어의 평행선이 변환 된 것에서 더 이상 존재하지 않으므로 affine 변환으로이 작업을 수행 할 수 없다고 결정했습니다.
그것이 맞다고 가정하면이 방법이 있습니까? CATransform3D가 3D 공간에서 원근감을 변경하는 것만으로도이 효과를 얻을 수있는 것처럼 보이지 않으므로 CATransform3D도이 작업을 수행 할 수 있습니다.
나는 변형 행렬에 새로운 것이므로 기본 무언가를 놓칠 수 있습니다. 또는 Core Animation 또는 Core Graphics의 기본 제공 옵션으로 할 수있는 것 이상일 수 있습니다 (아마도 OpenGL이 필요합니까?).
도움이 될만한 내용 : http://ciechanowski.me/blog/2014/05/14/mesh-transforms/ – jrturton
불행하게도 메쉬 변환은 공개 API가 아니므로 앱을 사용하면 App Store에서 앱이 거부됩니다 . –