一般来说,我对 three.js 和 3d 编程很陌生,所以这似乎是一个非常简单的问题。理想情况下,我希望答案可以帮助我理解基本原理。
我有一个对象需要“指向”另一个点(为简单起见,在本例中为原点),这可以通过该Object3D.lookAt(point)
函数轻松完成。这将对象的 Z 轴很好地指向该点。
我还想looker
围绕它的 Z 轴旋转我的对象,称为 ,使其 X 轴通常指向另一个对象,refObj
。我知道 X 轴不能直接指向refObj
除非该对象与原点成直角。我希望 的 X 轴位于和looker
创建的平面上origin
,如下图所示:refObj
looker
进行旋转的最简单方法似乎是 modify 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 = ??;
}