Catransform3dのM34の意味
-
28-09-2019 - |
質問
構造のm34の意味は何ですか?catransform3dの構造は、それが視点を変えることができることだけを知っていますが、値が-0.001と0.001の意味は何ですか?
解決
詳細を見つけることができます ここ. 。 Appleは、すべてのマトリックス乗算が逆になり、すべての行列が転置されるため、Appleが投影のために逆の乗算順序を使用して(指定されたリンクに対して)使用することに注意してください。
意味の簡単な説明:
- M34 = 1/z投影平面までの距離(1/ez 参照リンクの用語)
- + z軸の場合は視聴者に向かっているため、使用するときに「鏡を見て」感があります -
- プロジェクションセンターは(0,0,0)と設定した翻訳に加えています
他のヒント
私はこれを含むいくつかの記事を読みました: https://developer.apple.com/library/content/documentation/cocoa/conceptual/coreanimation_guide/advancedanimationtricks/advancedanimationtricks.html#/apple_ref/doc/uid/tp40004514-ch8-sw13
私の決議はここにあります:
エンティティ:
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);
}
所属していません StackOverflow