gpt4 book ai didi

math - 球体上的 3D 坐标为纬度和经度

转载 作者:行者123 更新时间:2023-12-03 07:27:31 25 4
gpt4 key购买 nike

我得到以下信息:

存在一个原点为 (0,0,0)、半径为 R 的球体。进行射线-球体相交后,我知道 3D 空间中球体上的一个点 (XYZ)(直线穿过球体外壳的 3D 空间中的确切位置)。

对于我的程序,我想计算球体上 XYZ 点的纬度和经度,但我无法(或 Google)想出一种方法来轻松做到这一点。

简而言之,我想要编写的函数是这样的:

public static LatLon FromVector3(Vector3 position, float sphereRadius)
{
return Latitude and Longitude
}

有人知道怎么做吗?作为引用,此 Wiki SVG 文件可能会有所帮助:

Geographic coordinates

更新:

感谢所有有用的答案,所以最后我使用了这段代码:

 public static LatLon FromVector3(Vector3 position, float sphereRadius)
{
float lat = (float)Math.Acos(position.Y / sphereRadius); //theta
float lon = (float)Math.Atan(position.X / position.Z); //phi
return new LatLon(lat, lon);
}

现在我必须考虑哪个答案最能帮助我接受:P。

最佳答案

我想从x,y,z(3d坐标系)找到球极坐标应该不难。

  1. r 如果位于表面,则始终保持不变。

    enter image description here

  2. (90 - θ) 您的纬度(负数表示位于底部),从顶部测量。 p>

    enter image description here

  3. φ 是您的经度。 (但不太确定经度系统)

    enter image description here

另请查看 wikipedia 中的此图.

enter image description here

关于math - 球体上的 3D 坐标为纬度和经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5674149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com