私はthree.jsと3Dプログラミングには一般的ではないので、これは非常に単純な質問のようです。理想的には、その答えが根本的な原則を理解するのに役立つことを願っています。Three.js - オブジェクトを回転させて1点を探して別の方向に向ける方法
Object3D.lookAt(point)
機能で簡単に実行できる別のポイント(この場合は、原点)を「ポイント」する必要があるオブジェクトがあります。これは、オブジェクトのZ軸がその点にきちんと向いていることを示します。
また、looker
というオブジェクトをそのZ軸の周りに回転させて、そのX軸が一般に別のオブジェクトの方向を指すようにしたいとします。refObj
そのオブジェクトが起点と直角にならない限り、X軸は直接refObj
を指すことはできません。私は、下記の図式化として、origin
、refObj
とlooker
によって作成された平面上にあるようにlooker
のX軸が欲しい:
回転を行うための最も簡単な方法は、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 = ??;
}
私はあなたが本当にあなたがオブジェクト(オブジェクトのup
- ベクトル)のy軸は平面に直交するようにしたいと言っている何jsFiddle with the example diagramed above