Javascript Webgl中的球面网格

Javascript Webgl中的球面网格,javascript,webgl,mesh,Javascript,Webgl,Mesh,我试图通过使用纬度(φ)和经度(θ)构建一系列网格来创建一个球体。我已经计算了球体,但是,我不确定如何在每次迭代时使θ范围从0到2pi,φ范围从0到pi function getSphereVertices() { data = new Array(nRows); var r = 1; for(var i=0; i<nRows; i++) { var lon = 0; //find out how to calculate this (-PI to

我试图通过使用纬度(φ)和经度(θ)构建一系列网格来创建一个球体。我已经计算了球体,但是,我不确定如何在每次迭代时使θ范围从0到2pi,φ范围从0到pi

function getSphereVertices()
{
    data = new Array(nRows);
    var r = 1;

    for(var i=0; i<nRows; i++) {
        var lon = 0; //find out how to calculate this (-PI to PI)
        data[i] = new Array(nColumns);            // -2.0 to 1.92
        for(var j=0; j<nColumns; j++) {
            var lat = 0; //find out how to calculate this (-PI/2 to PI/2)
            var x = r * Math.sin(lat) * Math.cos(lon);
            var y = r * Math.sin(lat) * Math.sin(lon);
            var z = r * Math.cos(lat);


            pointsArray.push(vec4(x, y, z, 1.0));   
        }
    }   
}
函数getSphereVertices() { 数据=新阵列(nRows); var r=1;
对于(var i=0;i计算代表[0,1]范围内经度的线性值:

var lon = i/nRows;
将此值从范围[0,1]映射到[-PI,PI]:

lon = (lon*2.0-1.0) * Math.PI;
对纬度执行类似操作,但从[0,1]映射到[-PI/2,PI/2]:

var lat = j/nColumns;
lat = (lat*2.0-1.0) * Math.PI/2;