threejs-经纬度转换成xyz坐标的方法
来源:互联网 发布:淘宝网中老年女冬装 编辑:程序博客网 时间:2024/06/05 18:09
用threejs做3D应用时,很经常会接触到球状物体,比如说地球,要定义球上的一点,用经纬度是常用的办法。现在,我们要在北京这个地方标一个点,北京的坐标为——北纬39.9”,东经116. 3”,该怎么做呢?
其实这就要用到“经纬度转换成xyz坐标”,因为在threejs中时以xyz来定义物体位置的。
坐标分析法
如下图所示,要求球上一点D的xyz坐标:
从上面的图就可以直观分析出D点的xyz坐标:
下面是一个实现:
/** * 经纬度转xyz * @param longitude 经度 * @param latitude 纬度 * @param radius 半径 */function lglt2xyz(longitude,latitude,radius){ var lg = degToRad(longitude) , lt = degToRad(latitude); var y = radius * Math.sin(lt); var temp = radius * Math.cos(lt); var x = temp * Math.sin(lg); var z = temp * Math.cos(lg); // console.log(x+","+y+","+z); return {x:x , y:y ,z:z}}
旋转法
在threejs中位置本质是一个向量,因此也可以通过向量的旋转来获得最终位置,如下所示:
先选一个特殊的向量作为旋转的起点,如在Z轴上的向量 OA,其经纬度都为0,那么
(1)让 OA 先以y轴为轴,旋转经度角度,得到 OB
(2) 将 OB 顺时针旋转 90 度 ,就能得到平面 BOC 的法向量 OD (这里没有画出,它是在OA 的左侧)
(3)让 OB 以 OD 为轴 ,旋转纬度角度,就得到 OC
这个可以直接通过向量的旋转就得到目标的坐标位置,还未用代码验证。
阅读全文
0 0
- threejs-经纬度转换成xyz坐标的方法
- 经纬度坐标转换的方法
- excel中将经纬度坐标转换成十进制度的方法
- 关于经纬度坐标转换的方法
- 关于经纬度坐标转换的方法
- 关于经纬度坐标转换的方法
- threejs坐标转换
- GPS坐标(经纬度)转换为百度坐标(经纬度)的JAVA方法
- GPS经纬度坐标的转换
- 经纬度坐标和投影坐标的转换
- 经纬度坐标和投影坐标的转换
- 经纬度转换成屏幕坐标
- 经纬度坐标转换成屏幕坐标
- 经纬度坐标转换成屏幕坐标
- 经纬度坐标转换成屏幕坐标
- GPS坐标转换经纬度及换算方法
- GPS坐标转换经纬度及换算方法
- GPS坐标转换经纬度及换算方法
- wampserver一直离线状态,localhost没用
- 基于.NET CORE微服务框架 -谈谈surging的服务容错降级
- 电脑常用问题集
- Linux内核net/bpf模块的bpf_tail_call()尾调用机制
- 关于进程保活的三两事
- threejs-经纬度转换成xyz坐标的方法
- 解决maven deploy后,别的项目依然无法引用,或引用报错
- 内部排序算法
- 坤驰科技发布高性价比高速数据采集卡QT1140系列
- 二进制漏洞与利用学习
- mysql查询结果保留2位小数不够补0
- 图像镜像_matlab
- 51-数组中重复的数字
- C#异或算法