首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我无法理解如何使用JavasScript执行以下数学方程式

我无法理解如何使用JavasScript执行以下数学方程式
EN

Stack Overflow用户
提问于 2016-09-26 18:15:52
回答 1查看 83关注 0票数 0

我无法理解函数labelBox中使用的这行代码this.position = convertlatlonToVec3(cardinal.lat, cardinal.lon).multiplyScalar(radius);。multiplyScalar(radius)是如何工作的。

代码语言:javascript
复制
function convertlatlonToVec3(lat, lon)
{
  var cosLat = Math.cos(circle.getCenter().lat() * degrees);
  var sinLat = Math.sin(circle.getCenter().lat() * degrees); 

  var xSphere = radiusEquator * cosLat;
  var ySphere = 0;
  var zSphere = radiusPoles * sinLat;
  var rSphere = Math.sqrt(xSphere*xSphere + ySphere*ySphere + zSphere*zSphere);

  var tmp = rSphere * Math.cos(lat * degrees);    

  xSphere = tmp * Math.cos((lon - circle.getCenter().lng()) * degrees);
  ySphere = tmp * Math.sin((lon - circle.getCenter().lng()) * degrees);
  zSphere = rSphere * Math.sin(lat * degrees);

  var x = -ySphere/circle.getRadius();
  var y = (zSphere*cosLat - xSphere*sinLat)/circle.getRadius();
  var z = 0;

  return new THREE.Vector3(x, y, z);

}

function labelBox(cardinal, radius, root)
{
  this.screenvector = new THREE.Vector3(0,0,0);
  this.labelID = 'MovingLabel'+ cardinal.ID;
  this.position = convertlatlonToVec3(cardinal.lat, cardinal.lon).multiplyScalar(radius);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-26 18:40:18

Three.js文档

对于THREE.Vector3 multiplyScalar方法,look文档是

.multiplyScalar (S)此

将此向量乘以标量s。

此方法的内容可以在in the THREE.Vector3 class中找到,如下所示:

代码语言:javascript
复制
multiplyScalar: function ( scalar ) {

    if ( isFinite( scalar ) ) {

        this.x *= scalar;
        this.y *= scalar;
        this.z *= scalar;

    } else {

        this.x = 0;
        this.y = 0;
        this.z = 0;

    }

    return this;

},
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39700167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档