私は一般的にthree.jsと3dプログラミングに慣れていないので、これは非常に単純な質問のように思えるかもしれません。理想的には、答えが根本的な原則を理解するのに役立つことを願っています。
別のポイント(この場合は、簡単にするために原点)を「ポイント」する必要があるオブジェクトがあります。これは、関数を使用して簡単に実行できObject3D.lookAt(point)
ます。これにより、オブジェクトのZ軸が適切にポイントに向けられます。
looker
また、X軸が一般的に別のオブジェクトを指すように、Z軸を中心にオブジェクトを回転させたいと思いますrefObj
。refObj
そのオブジェクトが原点と直角に発生しない限り、X軸が直接指すことはできないことを私は知っています。下の図のように、のX軸を、、、によってlooker
作成された平面上に配置します。origin
refObj
looker
回転を行う最も簡単な方法は変更することのように思われますがlooker.rotation.z
、値を計算する方法がわかりません。
lookAt
一般的に、X軸が向けられる2番目の座標を取る関数の拡張バージョンが欲しいです。このようなもの:
function lookAtAndOrient(objectToAdjust, pointToLookAt, pointToOrientXTowards)
{
// First we look at the pointToLookAt
objectToAdjust.lookAt(pointToLookAt);
// Then we rotate the object
objectToAdjust.rotation.z = ??;
}
上図の例でjsFiddleを作成しました