我试图沿z轴移动网格的顶点。网格类似于球体,而不是球体,但类似。它是来自搅拌机的进口网格。
问题在于,当我沿z轴移动顶点/顶点时,它就像世界坐标一样,我需要沿着指向网格中心的轴移动它。
例如,在3D模型软件中,我可以将轴更改为法线以获得此效果。
我已经检查过我可以使用 multiplyScalar 方法,但它不能很好地工作,因为我需要补间效果,我应该移动位置。
获得它的三个方法是什么?
PD:对不起noob问题。我已经使用javascript多年了,但我还没能在three.js的书籍/教程中学习这个概念,我不知道是什么方法可以得到它。答案 0 :(得分:0)
解决此问题的方法之一:
var box1 = new THREE.Mesh(
new THREE.BoxGeometry(10,10,10),
new THREE.MeshBasicMaterial({color: 0xff0000})
);
scene.add(box1);
var box2 = new THREE.Mesh(
new THREE.BoxGeometry(10,10,10),
new THREE.MeshBasicMaterial({color: 0x00ff00})
);
box2.position.set(100,100,100);
scene.add(box2);
var box3 = new THREE.Mesh(
new THREE.BoxGeometry(10,10,10),
new THREE.MeshBasicMaterial({color: 0x0000ff})
);
box3.position.set(100,100,100);
scene.add(box3);
var direction = box1.position.clone().sub(box2.position).normalize();
var move = new THREE.Vector3(0,0,100);
var moveCorrected = direction.multiplyScalar( move.length() );
box3.position.add(moveCorrected);
Example there - 绿色立方体从蓝色和红色向相同方向移动,初始向量为0,0,100。