Three.js如何使用DAT.Gui控制矢量3值z的位置

Three.js如何使用DAT.Gui控制矢量3值z的位置,three.js,dat.gui,Three.js,Dat.gui,我刚接触过three.js,我试图使用Dat.Gui修改Vector3中Z的位置值。这是我的密码,但我一点运气都没有 var zhighpnts = gui.add(parameters, 'x').min(0).max(400).step(.01).name('High Nodes'); zhighpnts.onChange(function(jar){ var a = new THREE.Vector3( 400, jar, 400 ); var b = ne

我刚接触过three.js,我试图使用Dat.Gui修改Vector3中Z的位置值。这是我的密码,但我一点运气都没有

var zhighpnts = gui.add(parameters, 'x').min(0).max(400).step(.01).name('High Nodes');
zhighpnts.onChange(function(jar){
        var a = new THREE.Vector3( 400, jar, 400 );
        var b = new THREE.Vector3( 0, 0, 0 );
        var c = new THREE.Vector3( -400, jar, -400 );
    }); 

谢谢

似乎您正在尝试更改三角形的顶点

让我们创建一个:

var geom = new THREE.Geometry();
geom.vertices.push(new THREE.Vector3(-10, 0, 0));
geom.vertices.push(new THREE.Vector3(0, 0, 0));
geom.vertices.push(new THREE.Vector3(10, 0, 0));
geom.faces.push(new THREE.Face3(0, 1, 2)); // CCW - it's important
var tri = new THREE.Mesh(geom, new THREE.MeshBasicMaterial({color: "yellow"}));
scene.add(tri);
然后我们将设置一个参数对象

var parameters = {y:0};
然后得到三角形的顶点:

var a = geom.vertices[geom.faces[0].a]; // face's properties a, b, c 
var b = geom.vertices[geom.faces[0].b]; // contain just indices of related vertices
var c = geom.vertices[geom.faces[0].c]; // thus we'll find them in array of vertices
剩下的就不那么难了,所以让我们创建控制器:

var gui = new dat.GUI();        // create instance of dat.GUI();
gui.add(parameters, "y", 0, 20) // add a controller for 'y' property of 'parameters' 
.name("High nodes")             // set controller's name
.onChange(                      // set controller's listener
  function(value) {
    a.y = value;                // we want to change y-value of 'a'
    c.y = value;                // we want to change y-value of 'c'
  }
);
还有一件更重要的事,你必须

geom.verticesNeedUpdate = true;
在动画/渲染循环中


例如。希望能有所帮助。

你的问题很让人困惑。你说的是
z
-值,然后你为
parameters
x
属性添加一个控制器,然后在它的
onChange
监听器中设置
y
-值
THREE.Vector3()
。这正是我想要的。谢谢。