我试图将所有加载的obj文件构成的网格彼此远离,以便用户可以看到所有网格。
我试图模仿以下示例
转到链接,点击UI托盘中的爆炸图标,然后移动滑块。
到目前为止我做了什么 我可以访问模型的所有网格 所以我可以对它们应用任何功能。 到目前为止,我已经通过它们并给它们随机的位置向量。
它工作正常,整个模型爆炸,每个网格都是可见的。
问题
通过给出随机位置矢量,他们显然会移动到随机位置。我想像共享链接一样移动它们。任何帮助,将不胜感激。 我是这个真棒三人的新手,我真的很想学到更多。 在此先感谢
修改 示例代码
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模型
答案 0 :(得分:1)
您要做的是从中心位置移动每个网格远离。这是通过计算网格位置和中心之间的向量,然后沿着这个方向移动网格来完成的:
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);
}