javascript - 爆炸或移动网格远离中心

标签 javascript three.js tesselation

我正在尝试移动所有构成加载的 obj 文件的网格,使它们彼此远离,以便用户可以看到所有网格。

我正在尝试模仿下面的例子

Demo

转到链接,单击 UI 托盘中的爆炸图标并移动 slider 。

到目前为止我做了什么 我可以访问模型的所有网格 所以我可以对它们应用任何功能。 到目前为止,我已经遍历了它们并给了它们随机位置向量。

它工作正常,整个模型爆炸,因此每个网格都单独可见。

问题

通过给定随机位置向量,它们显然会移动到随机位置。我想像共享链接一样移动它们。任何帮助,将不胜感激。 我是这个很棒的 threejs 的新手,我真的很想了解更多。 提前致谢

编辑 示例代码

    function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}
for(var i = 0; i < mainStand.children.length; i++)
{
    pos1 = getRandomArbitrary(1 , 2);
    pos2 = getRandomArbitrary(1 , 2);
    pos3 = getRandomArbitrary(1 , 2);
    mainStand.children[i].position.set(pos1 , pos2 , pos3);
}

其中mainStand是加载的obj Model

最佳答案

您要做的是将每个网格远离 中心位置。这是通过计算网格位置和中心之间的向量,然后沿着这个方向移动网格来完成的:

var center = new THREE.Vector3(0, 0, 0);
var distanceToMove = 0.1;

for (var i = 0; i < mainStand.children.length; i++) {
    var meshPosition = mainStand.children[i].position;

    var direction = meshPosition.clone().sub(center).normalize();

    var moveThisFar = direction.clone().multiplyScalar(distanceToMove);

    mainStand.children[i].position.add(moveThisFar);
}

关于javascript - 爆炸或移动网格远离中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45792919/

相关文章:

javascript - three.js 3d 模型作为超链接

opengl - 使用曲面分割对带有孔的四边形进行三角剖分

c++ - API 类似于 GLUTesselator?

javascript - Backbone + RequireJS + Mediator Pattern 导致 View Logic 短路死循环

three.js - 三JS : First shader attempt - blending two textures

javascript - Three.js - 没有纹理绑定(bind)到单元 0 错误

R - 绘制六边形镶嵌

javascript - 当浏览器不支持 HTML5 视频时,如何重定向到 URL?

javascript - 更改过滤数组中的 bool 值

javascript - 根据 span 中的动态值显示/隐藏 Div