我有一个可能很愚蠢的问题。我试图迭代平面的顶点。 为什么这不起作用。我收到“未捕获的类型错误:无法设置未定义的属性 '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/ 的整个代码取消上面循环中注释行的注释以获取错误。
感谢您的帮助,我已经为此疯狂了三天! 对于任何菜鸟错误,我们深表歉意。
最佳答案
作为所有几何对象一部分的顶点数组没有位置成员。位置变量是Object3D的成员,它是一个THREE.Vector3。顶点数组实际上本身是一个由 THREE.Vector3 组成的数组,因此您只需更改此行
vertices[i].position.x = Math.random() * 50;
到...
vertices[i].x = Math.random() * 50;
关于three.js - 平面上的顶点没有位置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11459104/