問題タブ [scnvector3]
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.
ios - SCNVector3 の位置を CGPoint SCNView 座標に変換する方法は?
ランドスケープでのみ機能するこのアプリがあります。
シーンキットにオブジェクトがあります。そのオブジェクトは、次のように指定された特定の位置にあります。
SCNVector3
これをmainView
2D 座標に変換する必要があります。
シーンは直交カメラを使用しているため、パースペクティブはありません。カメラはデフォルトのカメラです。回転なし、並進なし。カメラの orthographicScale は 5.4 です。
どうすればそれを変換できますか?
CGPoint から SCNVector3 に変換するという逆の質問について、SO で他の回答を見つけましたが、SCNVector3 から CGPoint に逆にする方法は明らかではありません。
SCNView が UIView のサブクラスである場合、(0,0) は左上のポイントであり、iPhone 6 の横向きの場合、(667, 375) は右下のポイントです。
私のこのボタンは、高さのほぼ右端と中央にあります。UIKit に関して言えば、このボタンは (600, 187) にあると言えますが、これを行うと:
projectPoint が (7.8, 375, 0) に等しい (?)
UIKitを使用して座標(7.8、375)に10x10のビューを追加すると、左下にビューが表示されます!!
私が言ったように、アプリはランドスケープでのみ動作しますが、これらの座標系はすべて混乱しています.
ios - 子ノードと親ノードで SCNNode の位置を同じにする方法は?
wc という名前の子ノードを持つシーンがあります。そのノードにdae/modelファイルを追加したい。
次の方法でモデル/デイを追加できました。
- バンドルからの dae アセットを使用して親シーンを作成する
- 親シーンを scnView に追加し、それを self.view に型キャストします。
- dae を追加する必要なノードを取得します。
- 必要なノード dae でサブシーンを作成します。
- 親シーンの必須ノードの子としてサブシーン ルート ノードを追加します。
- 子ノードの位置を、親シーンの必要なノードの位置に設定します。
以下はスニペットです:
コード スニペット (viewDidLoad 内)
ログ出力
wcNode 位置 275.306549、157.163620、0.956176
DAE 位置 284.000000、160.000000、0.959596
前述のログ出力でわかるように、必要なノードとその子 Dae ノードの位置は同じではなく、シーン内でシフトされたモデルをレンダリングします。
なぜ位置が違うのですか?
シフトを補正するにはどうすればよいですか?
ios - SCNBoxがシーンキットで触れられたかどうかを検出する方法は?
SCNBoxがシーンキットで触れられたかどうかを検出する方法は? VRアプリを作っています