[英]Sphere mesh in Webgl
我正在嘗試通過使用緯度 (phi) 和經度 (theta) 構建一系列網格來創建一個球體。 我已經對球體進行了計算,但是,我不確定如何在每次迭代時使 theta 范圍從 0 到 2pi 和 phi 范圍從 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));
}
}
}
計算表示 [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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.