Autodesk Forge Viewerでカメラを制御しようとしています。ターゲットと位置を設定するのはうまくいくようですが、ローテーションやクォータニオンを設定しようとすると効果はありません。Forgeビューアのカメラの制御
カメラを取得するには、パラメータを設定しようとした後にgetCamera関数を使用してからapplyCameraを使用します。
私が達成しようとしているのは、ハンドヘルドデバイスでデバイスの向きを使用してモデルを回転させることです。アルファとベータを使ってターゲットを設定するだけでは、スムーズな操作ではありません。
あなたはsetviewコマンド()メソッド_viewer.navigation.setView (pos, target) ;
を使用する必要があり、また、あなたがカメラにあなたが望むように向きを確認するために、最大ベクトルを設定する必要があるかもしれません。
// get camera
var cam = _viewer.getCamera();
// get position
var vecPos = cam.position;
// get view vector
var vecViewDir = new THREE.Vector3();
vecViewDir.subVectors(cam.target,cam.position);
// get length of view vector
var length = vecViewDir.length();
// rotate alpha
var vec = new THREE.Vector3();
vec.y = length;
var zAxis = new THREE.Vector3(0,0,1);
vec.applyAxisAngle(zAxis,THREE.Math.degToRad(alpha));
// rotate beta
var vec2 = new THREE.Vector3(vec.x,vec.y,vec.z);
vec2.normalize();
vec2.negate();
vec2.cross(zAxis);
vec.applyAxisAngle(vec2,THREE.Math.degToRad(beta) + Math.PI/2);
// add to camera
cam.target.addVectors(vecPos,vec);
_viewer.applyCamera(cam,false);
こんにちは、私は、昨年、モバイルデバイスでビューアのカメラを駆動する実験を行いました。これはそれに関するブログです。 https://forge.autodesk.com/cloud_and_mobile/2016/11/remotely-connect-forge-viewer-with-mobile-sensor-and-touch-by-javascript.html。 Viewer3D.jsコードをコピーしてカメラを回転させただけです。それが少し助けることができるかどうか見てみることができますか?そうでない場合、私たちが調査するためにあなたが演奏したコードスニペットをいくつか提供できますか? –
こんにちは。私は最初に私のqestionに試みたもののコードスニペットを追加しました。クォータニオンを使用してコードを変更しようとしましたが、それでもやっていません。私のデバイスのアルファ値とベータ値は非常に「跳ね上がります」。 Chromeでシミュレートしたデバイスの向きで実行した場合はうまく見えます。 – FrodeTo