带你读《2022技术人的百宝黑皮书》——全景封面视频生成技术在淘宝的应用(17)

简介: 带你读《2022技术人的百宝黑皮书》——全景封面视频生成技术在淘宝的应用(17)

带你读《2022技术人的百宝黑皮书》——全景封面视频生成技术在淘宝的应用(16) https://developer.aliyun.com/article/1243463?groupCode=taobaotech



坐标系的转换


Three.js 里面有没有这样的 API 呢?依据笔者所查,并没有。因为我们忽略了另一个概念:高度。在三维空间中,我们的相机定位「视点」,还需要 Z 轴信息。Three.js 中的 API 是 camera.lookAt(x, y, z),该 API 可以旋转相机使其在世界空间中面朝一个点。


把刚才的经纬度坐标映射为三维空间的某个点,需要应用到一些数学知识:经纬度坐标系与三维笛卡尔坐标系转换。


将经纬度坐标系转换为三维笛卡尔坐标系:


image.png



将三维笛卡尔坐标系转换为经纬度坐标系:


image.png


只要理解其数学公式和其推导过程,我们就能通过实现代码该转换算法。文章篇幅有限不再对数学部分展开,其转换算法的代码实现如下:


function locate(longitude = 0, latitude = 0, fov = 90) {
 const modifiedLat = Math.max(-90, Math.min(90, latitude));
 const phi = THREE.MathUtils.degToRad(90 - modifiedLat);
 const theta = THREE.MathUtils.degToRad(longitude + 180);
 const distance = 1; // 球的半径
 const x = distance * Math.sin(phi) * Math.cos(theta);
 const y = distance * Math.cos(phi);
 const z = distance * Math.sin(phi) * Math.sin(theta);
 camera.lookAt(x, y, z);
 camera.fov = fov;
}


向左移动 20 度:


locate(0, 0, 90); // 初始化视点和视野
setTimeout(() => locate(-20), 2000); // 两秒后视点向左移动 20 度


执行效果(观察两秒后视角的变化):


image.png



带你读《2022技术人的百宝黑皮书》——全景封面视频生成技术在淘宝的应用(18) https://developer.aliyun.com/article/1243461?groupCode=taobaotech


相关文章
|
Linux
CentOS 安装rz和sz命令
CentOS 安装rz和sz命令
266 0
|
iOS开发
iOS 逆向编程(十三)PS命令获取进程PID与名称(Process Status)
iOS 逆向编程(十三)PS命令获取进程PID与名称(Process Status)
385 0
|
机器学习/深度学习 存储 安全
隐语小课 | 基于秘密分享的混合比特数学运算库-SIRNN介绍
隐语小课 | 基于秘密分享的混合比特数学运算库-SIRNN介绍
584 0
|
算法 网络安全 数据安全/隐私保护
【密码学】手摸手带你手算AES
本文带着大家手动计算了一下完整的简化版AES的整个流程,其实主要都参考了密码学与网络安全这本书,大部分的公式都是从这本书上来的,我是真的喜欢这个例子,麻雀虽小,五脏俱全,用来学习AES的入门感觉非常的合适,如果能够完整的自己手算下来这个例子,然后再去看完整版的AES算法,会简单非常多,主要就是规模扩大了一下,核心的流程还是上面这一套。最后,感谢能看到这里的读者,如果本文对大佬们理解AES有一点点的帮助,也不枉我手动敲了这么多的公式和矩阵了。
1251 0
【密码学】手摸手带你手算AES
|
11月前
|
前端开发 UED 开发者
React 日期选择器 Date Picker
本文从React的角度探讨了日期选择器的使用方法,包括使用`react-datepicker`库的基本配置、自定义样式、国际化设置、常见问题及解决方案,旨在帮助开发者构建用户友好的日期选择组件。
347 12
|
12月前
|
存储 安全 自动驾驶
探索未来网络:量子互联网的原理与应用
【10月更文挑战第2天】 本文旨在探讨量子互联网的基本原理、技术实现及其在通讯领域的革命性应用前景。量子互联网利用量子力学原理,如量子叠加和量子纠缠,来传输信息,有望大幅提升通信的安全性和速度。通过详细阐述量子密钥分发(QKD)、量子纠缠交换和量子中继等关键技术,本文揭示了量子互联网对未来信息社会的潜在影响。
|
索引
利用滚动索引来管理海量Elasticsearch数据
利用滚动索引来管理海量Elasticsearch数据
301 3
|
索引
在微信小游戏制作工具中实现文字逐个出现的打字机效果
在微信小游戏制作工具中实现文字逐个出现的打字机效果
256 0
|
算法 API Python
使用 Python 对接阿里云 OpenAPI 自签名
使用 Python 对接阿里云 OpenAPI 自签名
746 1
|
机器学习/深度学习 编解码 人工智能
【计算机视觉 | 图像分类】arxiv 计算机视觉关于图像分类的学术速递(8 月 8 日论文合集)(上)
【计算机视觉 | 图像分类】arxiv 计算机视觉关于图像分类的学术速递(8 月 8 日论文合集)(上)
【计算机视觉 | 图像分类】arxiv 计算机视觉关于图像分类的学术速递(8 月 8 日论文合集)(上)