問題タブ [catransform3drotate]

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.

0 投票する
1 に答える
932 参照

ios - 円を歪ませて 3D の外観にする UIView Transform プロパティ

MKMapViewを追加して使用していMKCircleViewます。から継承しUIViewているため、transform プロパティを使用できます。

変換なしでは非常に平らに見えますが、3D であるため、ピンの横では奇妙に見えます。

ここに画像の説明を入力

次のように歪ませたいと思います。

ここに画像の説明を入力

を設定する例で遊んでみましたCATransform3DRotateが、関連する数学は私のスキルではないため、何も近づきませんでした。

これどうやってするの?

0 投票する
1 に答える
2168 参照

ios - CATransform3DMakeRotation は、アニメーション中に UIView の半分を非表示にします

CATransform3DMakeRotation で次の UIView アニメーションを使用すると、変換中に UIView の半分が消え、完了時に再び表示されます。これは、インターフェイス ビルダーのビュー階層で UIView の背後に UIImageView がある場合にのみ発生します。

以下は、インターフェイス ビルダーのビュー レイアウトです。

Interface Builder のレイアウト

そして下のアニメーション結果。

ここに画像の説明を入力

2 番目の画像は、アニメーションが実行される前のもので、左半分が消えています。収縮した後、中心点を超えて成長すると、4 番目の画像に示すように、右側 (前の左側) が再び表示されます。

で背景画像を設定した場合

アニメーションは期待どおりに完了します。

0 投票する
1 に答える
197 参照

objective-c - 3D 空間で回転するときに UIViews の背面の可視性を非表示にする - Objective C

backface-visibilityCSS3 には( Mozilla Developer Network の説明)というプロパティがあります。

Cocoa Touch/Objective C に、3D 空間で回転させるときに UIView の内容を (背景色を除いて) 非表示にできるようなものはありますか?

(私がここで意味することの HTML5 デモもあります: CSS3 デモ)

サブビューを非表示/フェードアウト/インするために、アニメーションでハードコーディングする必要は本当にありません!!

ありがとう。:)

0 投票する
0 に答える
617 参照

uiview - Y および Z 方向に UIView を傾ける

私のグラフィックスは、ビュー コンテンツがグラフィックスと適切に整列するために、z 軸に沿って深さ方向に回転する必要があるようなものです。おそらく、z 方向に 5 ~ 10 度、y 方向にマイナス 5 ~ 10 度です。

現在、私はこれを使用しています:(argViewは私のイメージビューです)

しかし、これは私に非常に歪んだイメージを与えます-間違いなく私が望むものではありませんが、そこで何を提供すべきかわかりません.

私はアップルのドキュメントを読むことから始めましたが、機能が多すぎて混乱しています。誰かが私にとってそれを非常に簡単にする良いガイドを持っていれば、素晴らしい. 誰かがこの正確なことがどこで行われたかを指摘できれば、もっと素晴らしい.

0 投票する
1 に答える
1464 参照

core-animation - CALayer sublayerTransform (CATransform3D) - 「カメラ」を移動するにはどうすればよいですか?

試行A

このコード

この結果を与える

あ

赤枠がレイヤーの背景色

試行 B

このコード

この結果を与える

B

赤枠がレイヤーの背景色

では、何が問題なのですか?

「試行 A」のレンダリングされた例では、左中央から見ているため、折り目が間違った角度から見られます (左の折り目は右の折り目よりもわずかに薄くなります)。

「試行 B」のように、x 軸に変換することで、正しくレンダリングできますが、別の間違いが発生します。コンテンツが範囲外になりました (赤い四角形が境界です)。

カメラを真ん中からどうしたらいいですか?

0 投票する
1 に答える
654 参照

uilabel - UILabel の透視変換

にパースペクティブを追加UILabelして、斜めの面にペイントされているかのように表示しようとしています。

これが私のテストラベルです:

説明

そして、変換を適用した後:

ここに画像の説明を入力

私のコード:

私はたくさんの問題に悩まされています:

  1. UILabelラベル内のテキストは、それ自体と同じように変換を適用していないようです。フレームから外れて (クリップされて)、中央に配置されておらず、ジオメトリが正しくないようです。サイズも間違ってるかも?
  2. ぼやけています。ラスタライズする前に、テキスト ベクトルに変換を適用するにはどうすればよいですか。そうすることで、メリハリのある結果が得られると思います。
  3. zDistanceとの回転の調整がうまくいかないようdegreesで、正しい遠近感が得られます。zDistanceに基づいて正しく計算するにはどうすればよいdegreesですか?

(1) (2) (3) を解決するための助けをいただければ幸いです。どうもありがとう

0 投票する
2 に答える
934 参照

ios - CATransform3DRotate の後、ビューの半分が消える

ビューが 1 つあり、このビューには UIImageView と UILabel が 1 つあります。ビューを回転すると、ビューの半分が消えます。

これは私のコードです

viewToAnimate は、画像とラベルを含むビューです。

0 投票する
1 に答える
1942 参照

objective-c - CATransform3D の使用

テーブルビューを回転させてテーブルを傾けようとしています(スターウォーズのオープニングクロールに似た3Dテキストクロールの効果を与えるため)。

周りを見回した後、私はこの質問を見つけましたObjective-с CALayer UIView 実際の回転

受け入れられた答えは私が望むことをしているようですが、コードをTableViewに適用すると何もせず、テーブルはいつものように表示されます。

これは私がコピーしているコードです:

文字列の配列を作成した後(tableViewにデータを入力する)、これをviewDidLoadメソッドに配置しています

現在、コントローラーには他に 3 つのメソッドしかありません。

didReceiveMemoryWarning (プロジェクトの作成時に自動的に追加されます)

tableView: numberOfRowsInSelection (テーブル ビューの設定に使用) tableView: cellForRowAtIndexPath (テーブル ビューの設定と配列からのセル テキストの設定に使用)

私の理解では、テーブルビューには CALayer があり、CATransform3D はこれを操作して 3D 空間でのビューの表現を提供します。私の理解が正しければ、リストが画面に正常に表示される理由がわかりませんか? 私はまだ私が望む効果を与えていない数字に感謝していますが、画面上のtableViewの外観には少なくとも影響を与えるはずです。

また、QuartzCoreなどをインポートして、リンクされたフレームワークに追加しました


解決策は、セルがnullであることを確認した後、 - (UITableViewCell *)tableView: cellForRowAtIndexPath: メソッドでOLD answerとしてマークされたコードを使用することです。

0 投票する
2 に答える
2264 参照

iphone - CATransform3DMakeRotation 使用時のパースペクティブなし

を使用して UIView レイヤーで 3D 回転を実行しようとしていCATransform3DMakeRotationます。なぜこの単純な例がパースペクティブを示さず、代わりに押しつぶされたように見えるのか、私は混乱しています。を使用すると回転を機能させることができますが、回転さCATransform3DRotateせたくないので、回転させたいです。ありがとう。

これがどのように見えるかのスクリーンショットです:

スクリーンショット

Davidの回答後の更新:

順序が重要であるという David の主張を強化するために、行列の違いを確認したいと思い、これをコード化しました。

次の出力が生成されます。

0 投票する
1 に答える
548 参照

ios - レイヤーを再度反転できません,CALayer,CATransform3DRotate.

私がやろうとしていることは次のことです:

  1. ボタンをクリックして上下反転します。
  2. ボタンをもう一度クリックすると、レイヤーが元に戻ります...

コードは次のとおりです。

ただし、ステップ 1 では、レイヤーが 180 度反転し、ボタンをもう一度クリックしても何も起こりません。

私は途中で何かを逃しましたか?助けてください。