Three.js 重新定位在原点创建的对象,使其遵循向量的方向

Three.js 重新定位在原点创建的对象,使其遵循向量的方向,three.js,Three.js,如何重新定位在原点创建的对象,使其遵循向量的方向 我的小提琴显示了一个球体,精灵分布均匀。然后我创建一个均匀分布的精灵的圆盘(圆)。我的目标是将光盘定位在球体外部,匹配从“原点>球体对象”生成的方向 我相信我的问题源于这样一个事实:我在原点创建光盘精灵,然后尝试稍后使用translateOnAxis重新定位 相关代码。 disc\u对象包含一些精灵; direction是一个3.Vector3矢量,从原点开始指向球体上的点。我需要帮助将disc_对象与该方向对齐 for (var i = 0,

如何重新定位在原点创建的对象,使其遵循向量的方向

我的小提琴显示了一个球体,精灵分布均匀。然后我创建一个均匀分布的精灵的圆盘(圆)。我的目标是将光盘定位在球体外部,匹配从“原点>球体对象”生成的方向

我相信我的问题源于这样一个事实:我在原点创建光盘精灵,然后尝试稍后使用
translateOnAxis
重新定位

相关代码。
disc\u对象
包含一些精灵;
direction
是一个
3.Vector3
矢量,从原点开始指向球体上的点。我需要帮助将disc_对象与该方向对齐

for (var i = 0, l = disc_objects.length; i < l; i++) {
    // Vogel's method of Fermat's spiral (Phyllotaxis)
    // http://blog.marmakoide.org/?p=1

    var theta = i * golden_angle;
    var r = Math.sqrt(i) / Math.sqrt(l);

    // all points are created around origin
    disc_objects[i].position.x = r * Math.cos(theta);
    disc_objects[i].position.y = r * Math.sin(theta);
    disc_objects[i].position.multiplyScalar(distance);

    // translate the arranged disc points to the random_point
    // adds disc twice as far away as ranom_point on sphere
    disc_objects[i].translateOnAxis(direction, distance * 2);  
    scene.add(disc_objects[i]);
}
for(变量i=0,l=disc\u objects.length;i
好的,我知道了。我不知道您可以创建Object3D对象作为父对象,然后添加子对象。所有的孩子都有他们相对于父母的出身

parent = new THREE.Object3D();
parent.position.add(direction.clone().multiplyScalar(distance * 2));
parent.lookAt(vector);
scene.add(parent);

现在,当我添加光盘点时,它们是相对于父级的,正确地“查看”原点。

让其他人提供输入总是很好的,谢谢您的示例。我喜欢你增加精灵的数量,叶序看起来很整齐。