Javascript Webgl中的球面网格
我试图通过使用纬度(φ)和经度(θ)构建一系列网格来创建一个球体。我已经计算了球体,但是,我不确定如何在每次迭代时使θ范围从0到2pi,φ范围从0到piJavascript 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
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;