2013-03-24 2 views
0

CAShapeLayer을 사용하여 사용자가 화면에서 손가락을 따라갈 때 업데이트되는 경로를 표시합니다. 이 경로를 경로를 둘러싸는 직사각형으로 변환하고 싶습니다. 사각형을 잘 계산할 수 있습니다. 까다로운 부분은 변형을 움직이는 것입니다.임의 모양의 CGPath를 사각형에 애니메이션하기

워드 프로세서 CAShapeLayerpath 속성이 애니메이션에 대해 말할 : 두 경로가 제어 포인트 또는 세그먼트의 수가 다른 경우

결과는 정의되지 않는다.

그럼 제어점을 사각형 CGPath에 추가하는 방법은 무엇입니까? 아니면이 애니메이션을 구현하는 더 좋은 방법이 있습니까? 감사. =)

답변

1

직사각형의 형태로 일련의 선을 수동으로 만들어야한다고 생각합니다. 경로의 요소를 반복하고 경계 사각형을 변환 할 위치를 계산 한 다음 해당 세그먼트를 새 사각형 경로에 추가합니다. 제어점의 수가 일치하도록 같은 종류의 요소 (예 : 직선을 형성하는 3 차 또는 2 차 베 지어 곡선)를 사용해야 할 수 있습니다.

애니메이션이 완료되면 원할 경우 경로를 순수한 사각형으로 재설정 할 수 있습니다.

+0

고마워요! 어떻게 그 점을 바꿀 경계 사각형을 어디에 계산합니까? – fumoboy007

+1

그건 디자인 선택입니다. 주어진 점을 수평 또는 수직으로 가장 가까운 모서리로 번역 할 수 있습니다. 모서리와 교차 할 때까지 방사형을 따라 각 점을 중심에서부터 멀리 옮길 수 있습니다. 간단히 경로의 요소를 세고 가상의 사각형을 동일한 수의 섹션으로 대략 동일하게 나누고 각 요소를 섹션에 매핑 할 수 있습니다. 기타 선택 사항은 경로가 어떻게 움직일 지에 정확히 영향을 미칩니다. 다른 방법으로는 임의의 경로를 직사각형으로 점진적으로 변환하는 올바른 방법이 없습니다. –

관련 문제