問題タブ [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 - CoreAnimationでパースペクティブ変換を使用しようとして失敗しました
下に反射のある画像を表示するシンプルなiPhoneアプリを作成しようとしています。コアアニメーションを使用して、X軸を中心に画像を回転させたいと考えています。
「ビューベースのアプリケーション」テンプレートを使用して新しいiPhoneアプリを作成することから始めました。「Picture.jpg」画像ファイルを追加してから、これをViewControllerに追加しました。
これはほとんど機能します。問題は、メイン画像の回転と反射の回転が完全に同期していないことです。完璧に非常に近いですが、画像の下部と反射の上部のエッジは数ピクセル離れています。それらは数度異なるように見えます。
画面の左側では、反射が画像の「前方」にあるように見え、右側では、反射が画像の後ろにあります。つまり、上部の画像の下隅が画面に向かって押され、反射の上部の隅が視聴者に向かって引っ張られているように見えます。これは、画像が回転するときに画像の前面と背面の両方を見るときに当てはまります。
増やすzDistance
と効果が目立たなくなります。transform.m34
両方のレイヤーをゼロのままにして遠近法の変換を完全に排除すると、画像と反射は完全に同期しているように見えます。したがって、この問題は時刻同期の問題に関連しているとは思いません。
パースペクティブ変換に何かが欠けているのではないかと思いますが、何が悪いのかを判断する方法がわかりません。私は基本的に、この関連するStackOverflowの質問で説明されているのと同じ変換を行っていると思います。
誰かが助けることができますか?
iphone - UIView で CATransform3D を使用して特定のタイプのパースペクティブを追加するにはどうすればよいですか?
しばらくの間、基本的な変換 (回転、スケールなど) を使用して iPhone アプリを作成してきましたが、もう少し複雑なことをしたいと考えています。
数学は私の得意分野ではありませんが、UIView に「パースペクティブ」を追加するにはどうすればよいか考えていました (下の画像を参照)。Photoshop の傾斜オプションを使用して、スクリーンショットをすばやくモックアップしました。
これに対する解決策については、stackoverflow を調べてみました。これはうまく機能しますが、左端の高さが右端よりも大きいため、実際には私が求めているものではありません。
この CATransform3D を実行する方法を知っている人はいますが、これらの異なる高さはありませんか?
代替テキスト http://img594.imageshack.us/img594/4354/perspectivel.png
iphone - ある限界でズームを防ぐ
私のipadopenGLベースのアプリケーションでは、2Dおよび3Dオブジェクトを描画し、ユーザーの指の動きに応じて回転させています。画面をつまむと、ユーザーはそれらのオブジェクトをズームできるようになります。ある制限のあるオブジェクト。たとえば、オブジェクトサイズの2倍を超えるユーザーはズームインできず、ユーザーはオブジェクトの元のサイズを超えてズームアウトできません。
「CATransform3DScale」を使用してオブジェクトをズームしています
ヒントをお願いします...
よろしくお願いします。
iphone - iPhoneSDK は CATransform3D から回転角度を計算します
入力として CATransform3D 構造体を指定して、Z 軸を中心としたラジアン単位の回転を計算するにはどうすればよいですか?
基本的に私が必要とするのは、の逆ですCATransform3DMakeRotation
。
iphone - CATransform3dMakeRotationを反対方向に回転させる方法は?そして一緒にチェーン
私は初めていくつかのCoreAnimationを使用していて、裏返すことができるトランプを実装する過程でCALayer
、コンテンツを表示するためにaを使用することにしました(どのように両面を取得するのかわかりません) 、しかしそれは別の質問です)そして私はそれをひっくり返したり、動かしたりすることができる必要があります...
私はCATransaction
ある程度の成功を収めて使用しています-以下のスニペットでは、カードが左下から左上に移動し、裏返します。問題は、私が反対の方向にひっくり返すことを望まないということですが、「ねえ、あなたは間違った方向に進んでいます!」とそれを伝える方法がわかりません。
2番目の質問は次のようになります:一度に2つの変換を実行するにはどうすればよいですか?2つをネストしようとしましCATransactions
たが、2つ目は最初の1つをオーバーライドします。また、x軸とy軸を中心に回転するように、回転のベクトルを2Dに変更しようとしましたが、これは、2つの個別の軸を中心に円周率で反転することと同じではありません。ネストされたコードは次のとおりです。
そして、ここにUIView
アニメーションブロックがあります...角度のスライダー、回転ベクトルのx、y、z、時間のtを追加しました。平行移動は時間の経過とともに行われる=2tであり、各回転はそれぞれtだけかかる必要があります。
そして、これが私が今いるところです。それはすべて、1つの例外を除いて機能します。カードがpi/2および3*pi / 2になると、yの回転が逆になります(反対方向に回転を開始します)。また、これらのポイントでx軸を中心に反転します。しかし、xとzはうまく機能します。とても近い!
perspective - CATransform3Dのm34の意味
構造体 CATransform3D の m34 はどういう意味ですか? 視点を変えられることしか知らないのですが、値が -0.001 と 0.001 の場合はどういう意味ですか?
iphone - Objectivecを回転させても座標は変更されません
さまざまなサブビュー(UIImageViewsとUIButtons)のホイールを回転させていますが、すべてのサブビューのすべての中心を表示するように要求すると、毎回同じ値が得られます。
回転させて別の位置に配置した後でも、値が常に同じになる理由を教えてもらえますか?
ありがとう!
ios - CATransform3DMakeRotation とシャドウ
フリップ アニメーション ライブラリを作成しています。
つまり、CALayer を作成し、CoreAnimation の CATransform3DMakeRotation を使用して回転させます。
問題は、そのシーンに影を追加する方法はありますか? OpenGLでコード全体を書き直すことなく:)
iphone - CATransform3Dから「スケール」を取得する
iPadアプリを作成していて、ビューの現在のサイズでユーザーを更新したいと思います。以前は、CGAffineTransformのスケールを計算し、xScaleに(関連するビューの)幅を掛け、yScaleに高さを掛けてこれを行っていました。これを続けたいのですが、2D変換を行っていないため、CATransform3Dからスケール情報を抽出するためにどの式を使用すればよいかわかりません。
手伝ってくれますか?
ios - CATransform3DMakeRotation はどのように使用されますか?
使い方がわかりませんCATransform3DMakeRotation()
。誰か使い方を教えてください。
最初のパラメーターは角度だと思いますよね?しかし、残りの3つは何ですか?