三个JS:如何解析平面的顶点以获得X和Y坐标?

时间:2017-09-07 10:45:18

标签: javascript 3d three.js geometry

我有以下初始化:

var plane = new THREE.PlaneGeometry(WIDTH, HEIGHT, 10, 10)

这将创建一个包含121个顶点和200个面的平面。我试图解析所有这些顶点以形成波浪状表面,波浪表面的公式是:

( Math.sin( ( x + count ) * 0.3 ) * 50 ) + ( Math.sin( ( y + count ) * 0.5 ) * 50 );

其中x和y表示平面中点的精确索引,可以将其视为2D平面:

------------
|    |     | <--- this square is located at (1,2)
|    |     |
------------
|    |     |
|    |     | <--- this square is located at (2, 2)
------------

现在这就是我在更新函数中解析顶点的方法:

function render() {
        time = clock.getElapsedTime() * 10;

        scene.traverse(function(node) {
            if(node instanceof THREE.Mesh && node.geometry.type === "PlaneGeometry") {
                for(var i = 0; i < node.geometry.vertices.length; i++) {
                     DO SOME STUFF WITH THE VERTICES HERE
                }

                node.geometry.verticesNeedUpdate = true;
            }
        });

        camera.lookAt( scene.position );
        renderer.render(scene, camera);
    }

我想特别经历每个顶点,同时知道它在平面中的确切X和Y位置,所以我可以应用该公式并创建一个波浪状表面,我该怎么做呢?

0 个答案:

没有答案