CATransform3D的結構m34的含義是什麼,我只知道它可以改變視角,但當值爲-0.001和0.001時,它的含義是什麼?CATransform3D的m34的含義
14
A
回答
18
你可以找到完整的細節here。請注意,Apple使用投影的反向乘法順序(相對於給定鏈接),因此所有矩陣乘法都相反,並且所有矩陣都進行了轉置。
的含義的簡短說明:
- M34 = 1/Z距離投影平面(在參考鏈路的1/e的Ž術語)
- +爲z軸朝向觀衆,造成了「照鏡子」使用時的感覺 -
- 投影中心爲(0,0,0),再加上你設置任何翻譯
1
我的分辨率是在這裏:
實體:
eye
- 從屏幕到眼睛距離scale
- 變換的對象distance
的視覺尺度 - 到距離轉化對象
連接式:
scale = eye/(eye + distance)
distance = eye * (1.0/scale - scale)
eye = distance/(1.0/scale - scale)
計算的z距離爲選定眼距離的退漿規模的
實施例:
CATransform3D transformByScaleAndEye(CGFloat scale, CGFloat eye) {
CATransform3D t = CATransform3DIdentity;
t.m34 = -1.0/eye;
CGFloat distance = -eye*(1.0/scale - scale);
return CATransform3DTranslate(t, 0, 0, distance);
}
相關問題
- 1. 我可以做一個半m34的transfromation
- 2. iOS的CATransform3D座標
- 3. CATransform3D的UIViewž邊境
- 4. CATransform3D使我的UITextView消失?
- 5. CATransform3D奇怪的UIScrollView contentOffset
- 6. 使用CATransform3D
- 7. UIPanGestureRecognizer - translationInView與CATransform3D
- 8. 瞭解CATransform3D
- 9. 從CATransform3D到CGAffineTransform
- 10. 「renderInContext:」和CATransform3D
- 11. CAKeyAnimation with CATransform3D
- 12. CATransform3D變換
- 13. 如何通過iOSOpenDev修復Xcode上的CATransform3D重定義錯誤?
- 14. CATransForm3D矩陣問題
- 15. 轉換GLKMatrix4和CATransform3D
- 16. iOS中的iCarousel/CATransform3D的屏幕截圖
- 17. CATransform3D - 回到之前的狀態
- 18. 上UIImage的應用CATransform3D而上下文
- 19. CATransform3D旋轉視圖邊緣的深度
- 20. 使用CATransform3D透視的摺紙轉換
- 21. 帶#keyPath的CATransform3D關鍵路徑
- 22. 應用CATransform3D後的近似矩形?
- 23. 使用CATransform3D性能不佳
- 24. CATransform3D無法正常工作
- 25. CATransform3D打破圖層順序?
- 26. 從CATransform3D獲取'比例'
- 27. CATransform3D動畫集X軸
- 28. CATransform3D equivavelent到CGPointApplyAffineTransform和朋友
- 29. CATransform3D圍繞所有軸
- 30. Javascript - '...'的含義
什麼是'' 1/z''?我仍然沒有得到你的解釋。什麼意思m34?變化有什麼作用? – confile 2015-06-04 00:51:23
z是到投影平面的距離,m43 = 1/z。我已經更新了答案,以使這一點更加清晰。變化改變了距離,並使視角在同一場景中看起來不同。 – 2015-06-05 11:06:45