如何使相同的功能适用于不同的阵列?

时间:2015-08-30 22:56:53

标签: arrays function three.js

当我想将3D几何体的顶点位置推到数组时,我想要执行一个函数。当我想将位置推送到数组时,我想再次使用相同的代码。当我想在阵列中推送某些东西时,甚至可以使用一个函数吗?有人可以帮帮我吗?

这是我的代码:

function sphereposition() {

    sphere.position.x + sphere.geometry.vertices[i].clone().x * 1;
    sphere.position.y + sphere.geometry.vertices[i].clone().y * 1;
    sphere.position.z +sphere.geometry.vertices[i].clone().z * 1;   

}

for ( var i = 0; i < particles; i++ ) {
    positions.push( sphereposition(); );
}

1 个答案:

答案 0 :(得分:0)

这真的不是一个three.js问题,而是更多的编程问题How do I organize my data

您有多种选择(不是详尽的清单)。

  1. 向cone2添加位置。然后,您的所有数据都将为world space position + vertices position
  2. 使用两个数组。一个用于object world space position,一个用于vertices position
  3. 通过对象矩阵预乘顶点并存储结果。
  4. 使用选项1:

        function getObjectData (object) {
    
            var world_position = object.position;
            var vertices_position = object.geometry.vertices;
    
            for ( var i = 0; i < particles; i++ ) {
                positions.push(
                    world_position.x + vertices_position[i].x,
                    world_position.y + vertices_position[i].y,
                    world_position.z + vertices_position[i].z,
                );
            }
        }