沿z轴移动网格的顶点

时间:2015-11-16 16:46:30

标签: 3d three.js

我试图沿z轴移动网格的顶点。网格类似于球体,而不是球体,但类似。它是来自搅拌机的进口网格。

问题在于,当我沿z轴移动顶点/顶点时,它就像世界坐标一样,我需要沿着指向网格中心的轴移动它。

例如,在3D模型软件中,我可以将轴更改为法线以获得此效果。

我已经检查过我可以使用 multiplyScalar 方法,但它不能很好地工作,因为我需要补间效果,我应该移动位置。

获得它的三个方法是什么?

PD:对不起noob问题。我已经使用javascript多年了,但我还没能在three.js的书籍/教程中学习这个概念,我不知道是什么方法可以得到它。

1 个答案:

答案 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。