質問

構造の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);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top