笛卡尔坐标与球坐标的转换
Converting Between Cartesian Coordinates and Spherical Coordinates
我需要在JavaScript中转换笛卡尔坐标和球坐标。我在论坛上浏览了一下,并没有找到我要找的东西。
现在我有这个:
this.rho = sqrt((x*x) + (y*y) + (z*z));
this.phi = tan(-1 * (y/x));
this.theta = tan(-1 * ((sqrt((x * x) + (y * y)) / z)));
this.x = this.rho * sin(this.phi) * cos(this.theta);
this.y = this.rho * sin(this.phi) * sin(this.theta);
this.z = this.rho * cos(this.phi);
我已经使用了球坐标系和笛卡尔到球坐标计算器来得到我的公式。
然而,我不确定我是否正确地将它们翻译成代码
有很多错误
要在整个范围内得到正确的Phi值,必须使用ArcTan2函数:
this.phi = atan2(y, x);
用反余弦函数
this.theta = arccos(z / this.rho);
反向变换-你交换了Phi和Theta:
this.x = this.rho * sin(this.theta) * cos(this.phi);
this.y = this.rho * sin(this.theta) * sin(this.phi);
this.z = this.rho * cos(this.theta);
相关文章:
- 将event.offsetX和event.offset Y的坐标转换为webGL本机坐标
- OpenLayers:自动将 EPSG 4326 - 文本图层的坐标转换为地图的投影 (EPSG:900913)
- 将 GPS 坐标转换为距离,并以十进制度为单位将距离转换为半径
- 将 GeoJSON 坐标转换为其他投影以用于草坪.js
- 将位置坐标转换为画布坐标
- 如何将像素坐标转换为等轴测网格坐标
- Pixi.js / WebGL方法,用于将数据模型坐标转换为画布像素坐标
- 将坐标转换为阵列中的块位置
- 将lat/lng坐标转换为给定地图上的像素(使用JavaScript)
- 如何从(x, y)屏幕坐标转换为LatLng(谷歌地图)
- 如何将屏幕坐标转换为z变换元素上的坐标
- 在ThreeJS中将2D鼠标坐标转换为世界XZ坐标
- 将经纬度坐标转换为图像地图坐标
- 天文坐标转换的Bug
- HTML5地理定位将当前GPS位置的长宽坐标转换为一个变量
- 反向地理编码:将GPS坐标转换为位置名称的函数调用永远不会执行
- 将贴图的xyz坐标转换为经度/纬度
- 如何将画布坐标转换为tile坐标
- 将上/左偏移坐标转换为日/时间
- 如何转换“正常”"坐标转换为OpenLayers中的OSM坐标