three.js - 平面上的顶点没有位置吗?

标签 three.js

我有一个可能很愚蠢的问题。我试图迭代平面的顶点。 为什么这不起作用。我收到“未捕获的类型错误:无法设置未定义的属性 '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/

相关文章:

javascript - 使用 Three.js 进行碰撞检测

三.js - 如何围绕特定点旋转圆柱体?

rotation - 使用四元数时如何从 Three.js 导出 "standard"旋转?

javascript - Three.js setFromRotationMatrix 旋转超过 90 度时的奇怪行为

javascript - 期望体积结果时的 Threecsg 平面

javascript - 通过单击 "button"在数组中添加值

javascript - THREE.js 使用多个 BoxGeometries 时保持单一颜色。一切都是不变的

three.js - 改变球体位置后球体物体变形

javascript - 如何摆脱几何?

javascript - 在 three.js 中移动平行于投影平面的对象