飞机上的顶点没有位置?

时间:2012-07-12 19:21:46

标签: three.js

我有一个可能很愚蠢的问题。我试图迭代一个平面的顶点。 为什么不这样做呢?我得到一个“Uncaught TypeError:无法设置属性'x'未定义”错误。

plane = new THREE.Mesh(new THREE.PlaneGeometry(100,100, 10, 10), planeMat);

//Set up heightmap for plane
var vertices = plane.geometry.vertices;
var l = vertices.length;
for ( var i = 0;i < l;i++){
    vertices[i].position.x = Math.random()*50;
}

scene.add(plane);

呈现http://jsfiddle.net/sJESN/的整个代码在上面的循环中取消注释注释行以获取错误。

感谢您的帮助,我已经疯狂了3天了! 对不起任何noob错误。

1 个答案:

答案 0 :(得分:8)

作为所有几何对象一部分的顶点数组没有位置成员。 position变量是Object3D的成员,它是THREE.Vector3。顶点数组实际上是本身一个THREE.Vector3数组,所以你只需要改变这一行

vertices[i].position.x = Math.random() * 50;

为...

vertices[i].x = Math.random() * 50;