我对three.js和3d编程很新,所以这似乎是一个非常简单的问题.理想情况下,我希望答案可以帮助我理解基本原则.
我有一个对象需要在另一个点(原点,在这种情况下为了简单起见)"指向",这可以通过该Object3D.lookAt(point)
功能轻松完成.这很好地指向了物体的Z轴.
我还想looker
围绕其Z轴旋转我的对象,称为其X轴通常指向另一个对象,refObj
.我知道X轴不能直接指向,refObj
除非该物体与原点形成直角.我想的X轴looker
为位于由形成的平面origin
,refObj
并且looker
,可图示如下:
进行旋转的最简单方法似乎是修改looker.rotation.z
,但我不知道如何计算值应该是什么.
一般来说,我想要一个lookAt
函数的扩展版本,它采用X轴定向的第二个坐标.像这样的东西:
function lookAtAndOrient(objectToAdjust, pointToLookAt, pointToOrientXTowards)
{
// First we look at the pointToLookAt
objectToAdjust.lookAt(pointToLookAt);
// Then we rotate the object
objectToAdjust.rotation.z = ??;
}
Run Code Online (Sandbox Code Playgroud)