簡體   English   中英

Webgl 中的球體網格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM