問題タブ [catransform3d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - CMAttitude と CATransform3D は回転行列によって関連付けられていますか?
コア モーション クラスを見ていCMAttitude
ます。デバイスの向きを 3x3 回転行列として表現できます。同時に、CATransform3D
ビューの姿勢とスケーリングをカプセル化する を調べました。はCATransform3D
4x4 マトリックスです。
OpenGL 回転行列は 4x4 で、4 行目と 4 列目に単に 0001 が埋め込まれていることがわかりました。
CMAttitude の回転行列が CATransform の行列に関連している場合、私は迷っていますか?
を使用して UIView を変換するために、回転行列を介して取得した空間でのデバイスの回転を使用できますCATransform3D
か? 私の意図は、ユーザーが電話を動かして、同じ変換を画面上の UIView に適用できるようにすることです。
おまけの質問: それらが関連している場合、CMAttitude の回転行列を CATransform3D に変換するにはどうすればよいですか?
ios - iOS で、レイヤの sublayerTransform を設定すると、CATranformLayer のように動作するようになるのはなぜですか?
zPosition
レイヤーのは、どのレイヤーがどのレイヤーを覆うかを決定するだけであることが知られています。それがzPosition
10 であろうと 1000 であろうと、その位置には影響しません。
つまり、これらのレイヤーを含めるために使用しない限り、これらのレイヤーCATransformLayer
zPosition
の はレイヤーの位置に影響します。
ただし、iOS 5.1.1 で実行されている次のコードzPosition
では、レイヤーの位置が変更されます。新しいシングル ビュー アプリで試して、次のコードをViewController.m
. のzPosition
をからにlayer2
変更すると、それに応じてレイヤーが移動することがわかります。したがって、コードにはありません。なぜそのように振る舞うのでしょうか?(Appleのドキュメントまたは参考文献を引用してください)。88
188
CATransformLayer
また、関連するのは、行self.view.layer.sublayerTransform = transform3D;
が変更されたself.view.layer.transform = transform3D;
場合zPosition
、位置に影響を与えないことです。しかし、Apple docs によると、transform
selfsublayerTransform
が変換されるかどうかだけが異なります:
transform
および の 2 つのレイヤー プロパティが変換行列を指定しますsublayerTransform
。で指定された行列transform property
は、レイヤーの を基準にして、レイヤーとそのサブレイヤーに適用されanchorPoint
ます。[...]sublayerTransform
プロパティで指定されたマトリックスは、レイヤー自体ではなく、レイヤーのサブレイヤーにのみ適用されます。
したがって、なぜそれを変更するとself.view.layer
のように振る舞うのか不思議ですCATransformLayer
。
iphone - CATransform3DTranslate 後の CATransform3DRotate
私はあなたがここで見ることができるような折り畳み式の Facebook メニューを作ろうとしています: http://www.mobileinc.co.uk/2012/05/folding-iphone-sidebar-menu/
今のところ、「折り」の部分に取り組んでいます。2 つのレイヤーがあります: - 左のレイヤーには {1,.5} にアンカー ポイントがあります - 右のレイヤーには {0,.5} にアンカー ポイントがあります
メインビューの真ん中で問題なく折りたたむことができます: CGFloat width = self.view.frame.size.width; CGFloat destinationWidth = slider.value * width;
これは完全に機能します。次のように x 軸でレイヤーを変換しようとすると問題が発生します: CATransform3DTranslate(transform,-marginLeft,0,-opposite)
レイヤーは適切な z 移動で折り畳まれますが、ビュー全体が回転したかのようにぎこちない角度で終了します。
これは明らかにパースペクティブに関連しています(m34を設定しないと「機能します」)が、それを補正する方法がわかりません...
前もって感謝します!
乾杯、
TeuBeu2
iphone - 常に画面に対して相対的な視点を適用する
を通じて得られる視点についてお聞きしたいですCATransform3D
。320x480 のビューがあり、これを適用する場合:
オブザーバーが画面の中心をまっすぐ見ているように見えるパースペクティブを作成するため、変換されるサブビューが画面上のどこにあるかによって、同じ変換が異なって見えます。たとえば、ビューが画面の中央にある場合、ビューを傾けると次のようになります。
左下隅にある場合は、次のようになります。
今、私の問題は、私が変換しているビューが320x480pxの大きさの別のビューのサブビューである場合にのみ、画面に対するパースペクティブを作成することです。しかし、変換したいビューが 100x100px しかないビューのサブビューである場合はどうなるでしょうか? スーパービューが画面のサイズでない場合、画面全体に対してパースペクティブを作成する方法はありますか? 前もって感謝します
ios - iOS:3D傾斜ビューを作成する方法
こんにちは私はUIView
このように傾けようとしています:
CATransform3DRotate
と他のコア機能を使ってやりたいです。出来ますか?
これまでに行ったこと:LowerTableという名前のオレンジ色のビューを作成するメソッドがあります。
setAnchorPointメソッドは次のとおりです。
アンカーポイントとビューが設定されたら、ボタンをタップして次のメソッドを呼び出し、変換を適用します。
それがしていることはUIView
、角度変換を使用して、の高さを単純に下げることです。これは、ビューを私の与えられた画像のように形作る必要があることは明らかです。しかし、私はそれができず、多くの方法を試しました。いくつかの例と明確な説明を手伝ってください。
前もって感謝します。
iphone - CATransform3DRotateは360度回転します
最近CATransform3Dを使い始めましたが、とてもいい感じです。ただし、ローテーションに1つの問題があります。ビューを右に360度回転させようとしていますが、パス360をCATransform3DRotateに配置しただけでは、機能しません(まったく移動しません)。
これが私のコードです:
誰かがこの問題を修正する方法を知っていますか?前もって感謝します!:)
objective-c - CATransform3D アニメーションの CAKeyframeAnimation でのスムーズ アニメーション
ビュー間の独自の遷移アニメーションを作成しました。位置と変換の 2 つのプロパティをアニメーション化して、ビュー間の立方体のような遷移を提供します。CABasicAnimation
変換が「2段階」を使用している間、フレームは使用しCAKeyframeAnimation
ます。私が理解できないように見える1つの小さな詳細を除いて、すべてが正常に機能します。トランジションCATransform3DScale
では、中央のキー フレームに を適用して、ズームイン/ズームアウト効果を作成します。アニメーションが少しぎくしゃくしていることを除いて、それはうまくいきます。キー フレーム間を直線的にアニメーション化していますが、それを滑らかにしたいと考えています。CAKeyframeAnimation
を使用してそれを行う方法がありますが、変換calculationMode
では機能しないようです。私はそれをに設定しようとしましたがkCAAnimationCubic
、kCAAnimationCubicPaced
効果はありませんでした。
以下は、1 つのビューの変換をアニメーション化するコードです (同様のコード ブロックが他のビューをアニメーション化します)。
注:RotateOnX(UIView *, CGFloat)
は、目的のラジアンによって X 軸上で回転されたビューの変換を返すブロックです。
ご覧のとおり、中央のキー フレームにのみスケーリング変換を設定しています。また、ビューの回転は完全にスムーズです。方向が変わるときに「急に」見えるのはスケーリングだけです。
スケーリング/ズームをスムーズにする方法について誰かアイデアがありますか?
iphone - 回転したレイヤーのグラフィック コンテキストは、変換を無視します
私はいくつかのレイヤーでビューを構成しており、そのうちのいくつかは回転しています。これらのレイヤーの表示は完全に機能しますが、画像を作成しようとすると、すべての回転/変換が無視されます。
たとえば、左を指す矢印のイメージを含む CALayer がある場合、(CATransform3DMakeRotation を使用して) z 軸を中心に回転した後、上を指し、レイヤーが正しく表示されます。ただし、(renderInContext を使用して) このレイヤーの画像を取得すると、矢印は依然として左を指し、変換は無視されます。
誰もが理由を知っていますか?私の望む結果を得るために私は何をしなければなりませんか? :-)
コード例:
xcode - 長方形から四角形への3D変換行列の計算方法
誰かが助けてくれることを願って、私は画像を長方形から四辺形に、各コーナーに与えられたx、y画面座標で変換する方法を見つけようとしています。
これまでに画像をCALayerに配置しましたが、長方形を必要な四辺形にワープするためにCATransform3Dを作成する必要があります。私が達成しようとしていることの例を以下に示します(aからbまで)。
私が間違っていて、CATransform3Dを使用して実行できない場合は、例を使用してこれを実現できる他の方法があります。
KennyTMの答えは、私がここから必要としているものに近いと思います。
私はそれを試しましたが、あまり運がありませんでした。彼は「転置が必要かもしれない」と言っていますが、その場合はどうしたらよいかわかりません。
c# - MonoTouch メンバーが不足していますか?
objc ビデオ プレーヤーのサンプルを MonoTouch に変換したところ、次の部分にたどり着きました。
Monotouch では、「スケール」または「回転」変換を行うことができます。
ただし、オブジェクト ブラウザで検索した後でも、パースペクティブ オプションは表示されません。これは、私がどこかで読んだ API の「キュレーション」の一部であり、使用頻度の低いアイテムは MonoTouch に持ち込まれませんか?
この機能をどのように使用しますか? このようにメンバーが行方不明になることはよくあることですか? 自動化されたツールがバインディングを生成したと思ったので、冗長または非推奨でない限り、すべての要素が利用可能になると考えていました.