如何使用ThreeJS在3D球体上绘制点

时间:2014-04-07 01:31:17

标签: javascript three.js

我刚刚开始钻研ThreeJS。目前我试图在一个球体上绘制一个点,但它似乎是在南半球而不是北半球。在垂直方向上,它看起来位于球体底部而不是顶部的正确位置。我从这个答案中抓取了一些代码:https://stackoverflow.com/a/8982005/738201

在图像中,带有红色框的黄线是我的绘图点。它应该在纽约州北部而不是现在的地方。enter image description here

最后,代码。

function xyz(lat, lon){
    var cosLat = Math.cos(lat*Math.PI/180.00);
    var sinLat = Math.sin(lat*Math.PI/180.00);
    var cosLon = Math.cos(lon*Math.PI/180.00);
    var sinLon = Math.sin(lon*Math.PI/180.00);
    var r = sphere.geometry.radius; //50

    var coords = {};
    coords.x = r * cosLat * cosLon;
    coords.y = r * cosLat * sinLon;
    coords.z = r * sinLat;

    console.log(coords);

    return coords;
}

// Lat/Lon from GoogleMaps
var coords = xyz(42.654162, -73.699830);
// returns {x: 10.321018160637124, y: -35.29474079777381, z: 33.878575178802286} 

我怀疑问题可能是在3D球体上使用2D坐标,但如果是这样,我不太清楚如何纠正它。

0 个答案:

没有答案