zoukankan      html  css  js  c++  java
  • 各种计算

    平面坐标计算代码

    /// 平面坐标系,通过三角函数求终点坐标
    /// startPoint(x,y): 起点
    /// angle: 角度
    /// distance: 距离
    /// <returns>终点坐标</returns>
    function calNewPointByAngle2(startPoint, angle, distance) {
        var endPoint = {};
        
        // 角度转弧度
        var radian = (angle * Math.PI) / 180;
        
        // 计算新坐标(对于无限接近0的数字,此处没有优化)
        endPoint.x = startPoint.x + distance * Math.sin(radian);
        endPoint.y = startPoint.y + distance * Math.cos(radian);
        
        return endPoint;
    }

    注意:

    
    

            1. 计算坐标时,对于无限接近0的小数没有进行优化,可根据实际转换为0

    
    

            2. 球面坐标计算时,不同维度球面周长不同,计算x偏移量时,需要根据所在维度进行转换

     

    球面坐标计算代码

    /// 球面坐标系,通过三角函数求终点坐标
    /// startPoint(lng,lat,alt): 起点
    /// angle: 角度
    /// distance: 距离
    /// <returns>终点坐标</returns>
    function calNewPointByAngle3(startPoint, angle, distance) {
        var rate = Math.cos(startPoint.lat * Math.PI / 180); // 指定维度球面长度和赤道长度的比率
    
        var lat_meter = 111111; // 1维度 ≈ 111,111米
        var r = angle * Math.PI / 180.0;
        var x = Math.sin(r) * distance;
        var y = Math.cos(r) * distance;
        x = x / lat_meter / rate; // x偏移量需要根据所在维度进行计算
        y = y / lat_meter;
    
        return {
            x: startPoint.lng + x,
            y: startPoint.lat + y,
            z: startPoint.alt
        };
    }

    注意:

    
    

            1. 计算坐标时,对于无限接近0的小数没有进行优化,可根据实际转换为0

    
    

            2. 球面坐标计算时,不同维度球面周长不同,计算x偏移量时,需要根据所在维度进行转换

     
  • 相关阅读:
    等你在清华
    印度教导的灵性四句话
    印度“人棍”男孩,用头部自理生活,坚挺过着生活
    观看纯净版优酷视频
    自定义联通话费充值
    windows实用工具
    计算机书籍下载
    文档下载冰点文库
    python读文件的三个方法read()、readline()、readlines()详解
    POJ 3661 Running(dp背包)
  • 原文地址:https://www.cnblogs.com/lingLuoChengMi/p/14325991.html
Copyright © 2011-2022 走看看