私はCALayerの変換プロパティの後ろにある行列にm14、m21、m22などのフィールドがあることをappleの一部の文書で見てきました。私はまた、1〜2ヶ月前に、これらのフィールドを説明するテーブルを見たことを覚えています。私はそれを見つけようと努力しました。誰もが情報源を知っていますか?すべての変換マトリックスフィールドの説明はどこで見つけることができますか?
答えて
その構造体は次のようになります。
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は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をそのポイントを変換します。
[ 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要素が1であると4ベクトルとして表現されなければならないことに注意してくださいまた、このベクターは、実際マトリックス自体であり、この行列の形式は、Wikipediaの記事に記載されたものと異なることに注意してください変換マトリックス上にある。これは、ポイントは通常、単一の列、4行の行列で表されるためですが、Appleはそれらを4列の単一行の行列として表現するためです。つまり、ウィキペディアの記事に表示されているトランスフォームマトリックスは、正しく動作させるためにiPhoneで使用する前にトランスポーズする必要があります。
別の例は、スケーリング変換である:
[ 2 0 0 0 ]
[ 0 2 0 0 ]
[ 0 0 2 0 ]
[ 0 0 0 1 ]
それは二重すべての点の座標のため、(1、2、3)(6、4、2)となるであろうであろう。回転や透視投影などの他の変換は、視覚的に認識することがより困難です。
アップルのtransformsに関する詳しい情報はこちらです。 Appleがこれらの行列を生成するためのユーティリティ変換を提供しています(this linkを参照)。彼らは実際にCATransform3DMakeRotationの背後にある数学については議論しませんが、this linkはそうします。
- 1. スカラーコンパイラのフラグ/オプションの説明はどのようにして見つけることができますか?
- 2. どこでMicrosoft.Build.Utilities.v3.5を見つけることができます
- 3. フラッシュデバッグプロトコルの仕様はどこで見つけることができますか?
- 4. C90とC99の明示的な文法はどこで見つけることができますか?
- 5. 私はインターネットで誰かがそれを私に説明することができる "[\\?&] v =([^&#] *)"を見つけた
- 6. Umbracoフリースキンはどこで見つけることができますか
- 7. タイムゾーンの紹介をどこで見つけることができますか
- 8. どこでPythonのvtkドキュメントを見つけることができますか?
- 9. どこでneo4jのクイックチュートリアルを見つけることができますか?
- 10. jQuery Themerollerのテーマについては、どこでもっと見つけることができますか?
- 11. JXTAでNetworkManager.RecursiveDelete()をどこで見つけることができますか?
- 12. どこでspiteでsqliteデータベースを見つけることができますか?
- 13. このラムダグループ機能について説明できますか?
- 14. ここで、javax.validation。*の実装を見つけることができますか?
- 15. PIL SANEインターフェース:どこで見つけることができますか?
- 16. どこでJava要素フィルタダイアログを見つけることができますか?
- 17. どこで良いRobocodeチュートリアルを見つけることができますか?
- 18. どこでiOSパスを見つけることができますか?
- 19. どこでssbdiagnoseを見つけることができますか
- 20. どこで良いUIを見つけることができますか?
- 21. どこでC++ csoundチュートリアルを見つけることができますか?
- 22. 誰かが説明することができます
- 23. 誰かがこのPicasso AdapterをGridViewについて説明することはできますか?
- 24. このGetCardinalityメソッドがやっていることを誰かに説明することはできますか?
- 25. 私はgoogleで見つけたサンプルスクリプトを私に説明することができた
- 26. viewModelをどこに見つけることができますか?
- 27. TimeZoneDisplayNameでTimeZoneByIdを見つけることができますか?
- 28. .ipa、ここで私はそれを見つけることができます
- 29. ここで私はExt.ux.CheckColumnを見つけることができます
- 30. 次のコードを説明することができます
これは大きな説明ですが、私はあなたの軸が転置されていると思います。 X、Y、Zの変換値はm41、m42、m43で表され、m14、m24、m34では表されません。 –
@NickLockwood良いキャッチ、私はそれに応じて説明を更新しました。 – Gabe