CALayer의 변형 속성 뒤에있는 행렬에 m14, m21, m22 등의 필드가 있다는 Apple의 일부 문서를 보았습니다. 나는 또한 한 두 달 전에 그 들판을 설명하는 테이블을 보았다는 것을 기억합니다. 나는 그것을 찾기 위해 힘든 시간을 보냈다. 소스를 아는 사람이 있습니까?모든 변환 매트릭스 필드에 대한 설명은 어디에서 찾을 수 있습니까?
답변
즉, 구조체는 다음과 같다 :
struct CATransform3D
{
CGFloat m11, m12, m13, m14;
CGFloat m21, m22, m23, m24;
CGFloat m31, m32, m33, m34;
CGFloat m41, m42, m43, m44;
};
typedef struct CATransform3D CATransform3D;
이 단지 4 × 4-벡터를 변환하는 데 변환 행렬이다. 임의의 수의 선형 변환을 나타내는 데 사용할 수 있습니다. 이 행렬 유형에 대해서는 this 위키 백과 문서를 참조하십시오. 이러한 요소의 대부분은 실제로 독립적으로 해석 될 수 없지만 일부는 해석 될 수 있습니다. 예를 들어, m41, m42 및 m43은 3- 공역에서의 번역을 나타냅니다. 그래서 예를 들어, 당신은이 행렬 점을 곱하면 :
[ 1 0 0 0 ]
[ 0 1 0 0 ]
[ 0 0 1 0 ]
[ 1 2 3 1 ]
는 그런 다음, + X 방향으로 1 2 개 + Y 방향으로 단위 및 + Z 방향으로 (3) 그 시점을 변환합니다. 포인트가 4 소자 (1)의이 벡터는 실제로 매트릭스를이 행렬의 형태로되어 있습니다 인 가진 4 벡터로 표현되어야 함
[ 1 0 0 0 ]
[ x y z 1 ] x [ 0 1 0 0 ] = [ x+1 y+2 z+3 1 ]
[ 0 0 1 0 ]
[ 1 2 3 1 ]
노트는 위키의 문서에 설명 된 것과 다른 변환 행렬. 왜냐하면 포인트는 일반적으로 단일 열, 4 행 행렬로 표시되기 때문입니다. 그러나 Apple은이를 4 열의 단일 행 행렬로 표시합니다. 즉, 위키피디아 기사에서 볼 수있는 모든 변환 행렬은 올바르게 작동하려면 iPhone에서 사용하기 전에 옮겨야합니다.
다른 예는 스케일링 변환이다
[ 2 0 0 0 ]
[ 0 2 0 0 ]
[ 0 0 2 0 ]
[ 0 0 0 1 ]
그것은 것 이중 모든하므로 점의 좌표 (1, 2, 3)이 될 것이다 (2, 4, 6). 회전 및 원근 투영과 같은 다른 변형은 시야에 서 인식하기가 더 어렵습니다.
여기 Apple의 transforms에 대한 자세한 정보가 나와 있습니다. Apple이 이러한 행렬을 생성하기 위해 많은 유틸리티 변환을 제공합니다 (this link 참조). 그들은 실제로 CATransform3DMakeRotation 뒤에있는 수학을 논하지 않지만 this link은 수학을 논합니다.
- 1. 어셈블러에 대한 문서는 어디에서 찾을 수 있습니까?
- 2. vfw.h에 대한 문서는 어디에서 찾을 수 있습니까?
- 3. Inotifier에 대한 정보는 어디에서 찾을 수 있습니까?
- 4. Windows 서비스에서 COM을 사용하는 방법에 대한 설명은 어디에서 찾을 수 있습니까?
- 5. Java Enterprise 버전 7 용 JSR에 대한 자세한 설명과 설명은 어디에서 찾을 수 있습니까?
- 6. 스칼라의 모든 특수 특성 목록은 어디에서 찾을 수 있습니까?
- 7. 어디에서 VBSQL.VBX를 찾을 수 있습니까?
- 8. 어디에서 Castle.MicroKernel.dll을 찾을 수 있습니까?
- 9. 어디에서 GladeGen을 찾을 수 있습니까?
- 10. ContactsListActivity는 어디에서 찾을 수 있습니까?
- 11. ExpressionParseHelper는 어디에서 찾을 수 있습니까?
- 12. 어디에서 'application.log'를 찾을 수 있습니까?
- 13. 대한 설명은
- 14. 모든 PHP 함수 목록은 어디에서 찾을 수 있습니까?
- 15. WPF 클립 아트는 어디에서 찾을 수 있습니까?
- 16. Android에서 연락처보기를 어디에서 찾을 수 있습니까?
- 17. 어디에서 라인 버퍼링 코드를 찾을 수 있습니까?
- 18. JavaScript의 변경 내역을 어디에서 찾을 수 있습니까?
- 19. xib 파일의 사양을 어디에서 찾을 수 있습니까?
- 20. FastScrollView의 좋은 예는 어디에서 찾을 수 있습니까?
- 21. "거의 모든"언어에 적합한 스핑크스 charset_table은 어디에서 찾을 수 있습니까?
- 22. 파이썬에서 가능한 모든 HTML 태그의 목록을 어디에서 찾을 수 있습니까?
- 23. 모든 Hibernate 이벤트의 완전한 (!)리스트는 어디에서 찾을 수 있습니까?
- 24. PowerShell에서 만들 수있는 모든 COM 개체는 어디에서 찾을 수 있습니까?
- 25. C# 3에 대한 깊이있는 가이드는 어디에서 찾을 수 있습니까?
- 26. ASP.net의 Html 클래스에 대한 정보는 어디에서 찾을 수 있습니까?
- 27. BitTorrent 소스 코드를 어디에서 찾을 수 있습니까?
- 28. BLAS 예제 코드는 어디에서 찾을 수 있습니까?
- 29. DCOM 문서는 어디에서 찾을 수 있습니까?
- 30. ListView 이벤트의 순서는 어디에서 찾을 수 있습니까?
이것은 훌륭한 설명입니다. 그러나 축을 옮겨야한다고 생각합니다. X, Y 및 Z 변환 값은 m14, m24 및 m34가 아니라 m41, m42 및 m43으로 표시됩니다. –
@NickLockwood 잘 잡으십시오, 그에 따라 설명을 업데이트했습니다. – Gabe