我有一个可能很愚蠢的问题。我试图迭代一个平面的顶点。 为什么不这样做呢?我得到一个“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错误。
答案 0 :(得分:8)
作为所有几何对象一部分的顶点数组没有位置成员。 position变量是Object3D的成员,它是THREE.Vector3。顶点数组实际上是本身一个THREE.Vector3数组,所以你只需要改变这一行
vertices[i].position.x = Math.random() * 50;
为...
vertices[i].x = Math.random() * 50;