問題タブ [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 - CATransform3DRotate 使用時のアンチエイリアス ライン
回答からコードをコピーして、パースペクティブ変換を UIView に適用するにはどうすればよいですか? 次のイメージを実現するために。ただし、レベルを区切るぎざぎざの線に注意してください。これらのギザギザの線をアンチエイリアスする方法で、この種の透視変換を実行する方法はありますか?
編集 この投稿のコメントで DarkDust が提供するソリューションを試しました。どれも機能していないようです。これが私のコードです:
画像に表示されているレベル ボタンはすべて のインスタンスでありUIControl
、 の直接のサブビューですUIControl *levelView
。levelView
変容しているものです。
DarkDusk の他の 2 つのコメントは、私が使用していない UIImages に関するものです。それらがまだ適用可能であり、誰かがそれらを実装する方法を説明できる場合、私は確かにそれらを試してみます.
objective-c - CATransform3Dを使用したこの変換で、ビューの幅が狭くなるのはなぜですか?
次の画像の進行を見てください。
ここで起こっていることは、最初に「野球」を選択したことです。これにより、さまざまなレベルのビューが中央になるように、表示されている3つの灰色のビューが左に回転します(2番目の画像)。この時点で、ビューの幅が大幅に縮小されていることがわかります。3番目の画像は、スポーツ名を含むビューをクリックした後に表示され、中央に回転して戻ります。
私の知る限り、ビューが中央に回転すると、ビューの幅が狭くなります。しかし、その理由はわかりません。
関連するコードは次のとおりです。pos
問題の場所を指しview
ます。0
中央に1
あること、中央の右側にあること、中央-1
の左側にあることなどを示します。
iphone - 順次 UIView 変換
複数の変換を UIView に適用することについて質問があります。たとえば、中心点を中心に UIView の回転をアニメーション化し、その後、境界の外側にある点を中心に回転しようとすると、2 番目のアニメーションがすべて台無しになります。指定された方法とは異なります。最初のアニメーションが 2 番目のアニメーションに影響を与えないようにするにはどうすればよいですか?
編集:コードは次のとおりです。まず、中心点を中心にビューを回転させます。
レイヤーが回転したので、左の画面境界でレイヤーを反転させます。
回転したレイヤーを反転させたいので、2番目のアニメーションの最初のCATransform3D bTransform = layer.transform
代わりに配置しますCATransform3D bTransform = CATransform3DIdentity
が、これもアニメーションを台無しにするだけです
私が抱えている別の同様の問題は、9つのサブビューを含むUIViewがあり、そのうちの1つが毎秒中心点を反転することです。しかし、これら 9 つの UIView の superView に変換を適用するたびに、subView のレイアウトがめちゃくちゃになります。これを防ぐ方法を知っている人はいますか?どんな助けでも大歓迎です。前もって感謝します!
iphone - 親レイヤーの変換を無視する
私は9つのサブレイヤーを持つCALayerを持っていますが、これは時々垂直方向に反転CATransform3D
します。さて、私の問題は、時々、それらの9つのレイヤーのスーパーレイヤーに変換を適用する必要があるということです。そうすると、サブレイヤーの位置と変換がすべて台無しになります。サブレイヤーに影響を与えないように、親レイヤーの変換を無視する方法はありますか?
ios - アニメーションが発生する前に UIView を回転させる
アニメーションでスケーリングする前に、UIView サブクラスのインスタンスを回転させたいと思います。残念ながら、私が持っているコードは同じアニメーションで回転およびスケーリングします。スケーリング アニメーションが発生する前に回転を完了または強制するにはどうすればよいですか?
ios5 - パースペクティブ変換をMKMapViewに適用する
に遠近法変換を適用しようとしていますMKMapView
。私はこのStackoverflowの質問の例に従っているので、私のコードは次のようになります(View Controllerのメソッドに挿入されますviewDidLoad
):
このコードは、記述されているとおり、うまく機能します。パースペクティブを適用したヨーロッパの地図を取得します。問題は、distance
変数を減らしてより近くで表示したり、この動作中の初期状態からズームインしたりすると、マップが適切にズームインされず、ズームアウト状態のときと同じようにマップが拡大縮小されることです。一方、のm34
フィールドを設定しない場合transform
、つまり、遠近法なしでマップを傾けるだけの場合は、問題なく機能します。
遠近法でストリートレベルの地図を取得する方法はありますか?
uitableview - UITableViewレイヤーをレイヤーに分割します
テーブルビューのレイヤーを2つのレイヤーに分割したいと思います。このように、私はそれらの1つを変換することができます。どうすればそれを管理できますか?
どうもありがとう !
ios - 透視図でフラットオブジェクトをその中心の周りで回転させる方法は?
私がやろうとしていることは、それで十分簡単なはずです。古いレコードの2Dトップダウンビューを作成しました。X軸で回転(元に戻す)してから、Z軸を中心に回転させます。
CATransform3Dが本体に含まれているすべての質問をここで読みました。また、SteveBakerの「Matricescanbe your friends」の記事と、BillDudneyの本「CoreAnimationfor Mac OS X andtheiPhone」を読みました。BradLarsonの「 「トラックボールなしの3D回転」にはすべて正しいコードがありますが、彼はユーザーに3軸すべての調整を許可しているため、コードを1次元(回転したz軸)に縮小するのに苦労しています。 )。
これが私がテストしている画像ですが、詳細が問題にとって重要であるというわけではありません。
私はそれを通常の方法で画面に表示します:(UIViewのサブクラスで)
これが最初のテストで、画面に表示されるだけです;-)
次に、「レイバック」するために、レイヤーのX軸を中心に回転する変換を適用し、レイヤーのコンテンツを画像に設定した後、サブレイヤーを追加する前に次のコードを挿入します。
それは期待通りに機能しました:レコードはうまくリラックスしています。
そして、次のステップとして、レコードを回転させるために、このアニメーションをtouchesEndedイベントに関連付けましたが、テスト/学習フェーズを終了すると、このローテーションはユーザーの制御下に置かれなくなります。
だから私がハングアップしているのはCATransform3DRotate呼び出しのベクトルであると確信しています(私を信じてください:私は変更を監視するためにそのベクトルで単純な変更を試みてきました...ここにリストされているのは単に最後の変更です私は試した)。私が理解しているように、変換でのx、y、zの値は、本質的に、アニメーション中に渡された値の値の範囲であるfromValueからtoValueまでのパーセンテージです。
私がこれを理解している正しい軌道に乗っている場合、これを単一の変換で表現することは可能ですか?または、アニメーションの有効なフレームごとに、元の直立した画像をz軸を中心にわずかに回転させてから、x軸を回転させて結果を配置する必要がありますか?変換の組み合わせについての質問/回答を見ましたが、それはスケール変換とそれに続く回転変換でした。私は変換の変換をいじりましたが、私が得るべきだと思うことをしていません(つまり、ある変換の結果を次の変換引数に渡すと、一方を完全に実行してからもう一方をアニメーション化するように見えました)。
cocoa-touch - viewWillAppear からトリガーされたときに CATransform3D が機能しないのはなぜですか?
次viewWillAppear
の変換 (Monotouch コード) を使用してビューの一部を調整したい:
ただし、これにより、ビューが画面の左端にレンダリングされます。まったく同じコードを に入れると、viewDidAppear
動作します。すべてのビューが有効なサイズであることを確認済みです。
graphics - 「renderInContext:」およびCATransform3D
内部に複数のビューがあるビューがあり、その中に画像プレゼンテーション(別名「カバーフロー」)もあります...そして、プログラムでスクリーンショットを作成する必要があります!
ドキュメントには「renderInContext:」は3Dアニメーションをレンダリングしないと書かれているので:
「重要このメソッドのMacOSX v10.5実装は、Core Animationコンポジションモデル全体をサポートしていません。QCCompositionLayer、CAOpenGLLayer、およびQTMovieLayerレイヤーはレンダリングされません。さらに、3D変換を使用するレイヤーはレンダリングされず、指定するレイヤーもレンダリングされません。 backgroundFilters、filters、compositingFilter、またはマスク値。MacOS Xの将来のバージョンでは、これらのレイヤーとプロパティのレンダリングのサポートが追加される可能性があります。」
私はたくさん検索しましたが、私の「最良の」解決策(それはまったく良くありません)は、独自のCGContextを作成し、それにすべてのCGアニメーションを記録することです。しかし、アニメーションコードのほとんどを書き直す必要があり、メモリに非常にコストがかかるため、実際にはやりたくありません... openGLを使用するか、キャプチャスルーする他のソリューション(一部は作成できません)を見つけましたAVSessionsですが、私を助けることができる人は誰もいません...
私のオプションは何ですか?その問題で何か?
御時間ありがとうございます !