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

2024-03-15

我得到以下信息:

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

对于我的程序,我想计算球体上 XYZ 点的纬度和经度,但我无法想出(或谷歌)轻松完成此操作的方法。

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

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

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

Update:

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

 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如果它在表面上,则总是恒定的。

  2. (90 - θ)你的纬度(负数意味着它在底部)它是从顶部开始测量的.

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

另请检查此图维基百科 http://en.wikipedia.org/wiki/Spherical_coordinate_system.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

球体上的 3D 坐标为纬度和经度 的相关文章

  • 如何通用地减少子集平均值的计算?

    Edit 由于似乎没有人阅读此链接的原始问题 因此让我在这里介绍一下它的概要 正如其他人所问的 最初的问题是 给定大量值 总和将超过数据类型的值Double那么如何计算这些值的平均值呢 有几个答案说要按集合计算 比如取50个和50个数字 计
  • 使用数学符号注释 Adob​​e Reader PDF

    我阅读的许多数学教科书和其他文献都是 PDF 格式 因此我经常使用 Adob e Reader 注释工具对它们进行注释 我确实找到了一个有用的指南 http cjasn asnjournals org site misc annotatin
  • 具有非常大的数字的除法

    我只是想知道在处理大数字时有哪些不同的除法策略 我所说的大数字是指 50 位数字 例如 9237639100273856744937827364095876289200667937278 82637448262718273966299344
  • 数学 - 映射数字

    如何将 a 和 b 之间的数字线性映射到 c 和 d 之间 也就是说 我希望 2 到 6 之间的数字映射到 10 到 20 之间的数字 但我需要广义的情况 我的脑子炸了 如果您的数字 X 位于 A 和 B 之间 并且您希望 Y 位于 C 和
  • 单位安全平方根

    我只是想知道如何以与 F 正确交互的方式编写用户定义的平方根函数 sqrt 单位制 http blogs msdn com andrewkennedy archive 2008 09 04 units of measure in f par
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • 在 Android 中将 LatLng 偏移一定量的米

    我有一个LatLng对象 我想将它的坐标向东移动 500 米 我找不到为此的内置方法 我见过https gis stackexchange com a 2964 https gis stackexchange com a 2964但我的结果
  • 谷歌地图颤动检查点是否在多边形内

    我正在使用 google maps flutter 插件开发 flutter 项目 我想检查用户位置是否位于我在地图上创建的多边形内 有一个简单的方法使用 JavaScript api con tainsLocation 方法 但对于 fl
  • C++ 中求幂的函数是什么?

    如何计算一个数的幂 2 1 2 2 2 3 etc cmath 库中的 pow 更多信息here http en cppreference com w cpp numeric math pow 别忘了放 include
  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • 有 JavaScript 的微积分库吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道 JavaScript 的微积分库吗 我做了一些谷歌搜索 但没有想出任何东西 我申请了 Wolf
  • python:查找围绕某个 GPS 位置的圆的 GPS 坐标的优雅方法

    我有一组以十进制表示的 GPS 坐标 并且我正在寻找一种方法来查找每个位置周围半径可变的圆中的坐标 这是一个例子 http green and energy com downloads test circle html我需要什么 这是一个圆
  • 数学/算法使图像适合屏幕保留纵横比

    我需要数学 算法方面的帮助来拍摄已知尺寸的图像并适合两个屏幕尺寸之一 720 x 480 或 1280 x 1024 图像尺寸来自 XML 文件 但这些尺寸是 Web 尺寸 我还从 XML 中选择了一些图像 这些图像的分辨率可能比 Web
  • 如何确保整数除法始终向上舍入?

    我想确保如有必要 整数除法总是向上舍入 还有比这更好的方法吗 目前正在进行大量选角工作 int Math Ceiling double myInt1 myInt2 更新 这个问题是我2013年1月博客的主题 http ericlippert
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 从 x,y 屏幕空间坐标查找 2D 等距网格上的列、行(将方程转换为函数)

    我试图在屏幕空间点 x y 的二维等距网格中找到行 列 现在我几乎知道我需要做什么 即找到上图中红色向量的长度 然后将其与表示网格边界的向量的长度 由黑色向量表示 进行比较 现在我在数学堆栈交换中寻求帮助 以获得用于计算点 x y 与黑色边
  • 如何将平面上的 3D 点转换为 UV 坐标?

    我有一个 3d 点 定义为 x0 y0 z0 该点属于一个平面 定义为 a b c d normal a b c and ax by cz d 0 如何将 3d 点转换或映射为一对 u v 坐标 这一定是非常简单的事情 但我无法弄清楚 首先
  • Windows API 中逻辑坐标和设备坐标之间的混淆

    我一直在研究一个使用两个函数的 Visual Studio C Windows 应用程序项目SetWindowExt and SetViewportExt 我对这两个函数的作用以及为什么它们是必要的感到困惑 搜索这些函数 我得出了逻辑坐标和
  • 为什么我的圈子值为零?

    这是我的 Circle 类代码 class Circle private double radius private double area public Circle double radius this radius radius pu
  • 计算移动的球与移动的线/多边形碰撞的时间(2D)

    我有一个多边形 里面有一个移动的球 如果球撞到边界 它应该反弹回来 My current solution I split the polygon in lines and calculate when the ball hits the

随机推荐

  • ng2-ckeditor 404(未找到)

    我使用 cmd npm install ng2 ckeditor 添加了 ng2 CKEDitor 安装得很好 有一个例子https www npmjs com package ng2 ckeditor https www npmjs co
  • 无法使用 psycopg2 连接到 Postgres 容器

    我有以下设置 容器中的一个简单 Flask 应用程序 Postgres 容器 使用以下 Dockerfile FROM python alpine3 7 COPY app WORKDIR app RUN apk update RUN apk
  • Eclipse 调试配置中的默认 VM 参数?

    当我使用 TDD 实现新功能时 我经常使用快捷方式Shift Alt D T仅运行我当前正在处理的 jUnit 测试用例 而不是整个测试套件 这需要几分钟 这将为当前 Java 源创建一个新的调试配置并立即运行它 现在我想在启用断言的情况下
  • AutoCompleteTextView 未完成括号内的单词

    我已经实施了AutoCompleteTextView如下 MainActivity java public static String myData new String Africa AF America AFM Apple AMP te
  • 将自定义数据嵌入到不会被 ld.so 映射的 ELF 文件中

    我有一个 500MB 的文件 其中包含一些自定义数据 即 ZIP 存档 我想将它嵌入到我的 ELF 可执行文件中 这样当我分发 ELF 文件时 我将只能发送 1 个文件而不是 2 个文件 问题是我不希望在我的应用程序启动时操作系统自动加载这
  • 在 Entity Framework 4.0 中批处理 DB 命令

    我当前的项目需要每天与外部系统同步 同步基于复杂的导入文件结构 该结构通过广泛的业务逻辑进行解析和处理 由于业务逻辑的原因 我们决定在 NET 代码中进行此操作并重用现有的 BL 组件 而不是在存储过程或集成服务中编写相同的逻辑 BL 层位
  • .Net 中的单元测试属性?

    我正在开发一个我想以开源方式发布的库 我已经开始为代码编写测试 我想知道如何测试 Net 对象中的属性 可以说我有以下内容 public class Person region variables private string name S
  • 生成三角/六角坐标 (xyz)

    我试图提出一个迭代函数来生成六角形网格的 xyz 坐标 使用起始六边形位置 为简单起见 假设为 0 0 0 我想计算每个连续的六边形 环 的坐标 如下所示 到目前为止 我所能想到的就是这个 javascript 中的示例 var radiu
  • 具有 AsynchronousServerSocketChannel 的多线程服务器

    我必须实现一个应该接受更多连接的服务器 没有任何更深入的思考 我决定使用新的 JAVA NIO 2 类 我目前的做法是 final Semaphore wait new Semaphore 1 while true wait acquire
  • 为什么函数绑定到它们传递的第一个类型

    我是 F 新手 我在闲逛 发现了一些有趣的东西 我希望有人能启发我了解幕后发生的事情 所以我做了这个功能 let my func x y x y 然后我用参数调用该函数1 and 2给我3 这是我期望发生的事情 但是当我将两个字符串传递给m
  • 与 StructureMap 4.6 瞬态生命周期的混淆

    我使用 StructureMap 4 6 作为我的 IoC 容器 我对其生命周期有点困惑 正如我在其文档中所读到的那样 Transient 将为每个容器创建一个对象实例 支持的生命周期 http structuremap github io
  • eval() 和 new Function() 是同一件事吗?

    这两个函数在幕后做同样的事情吗 在单语句函数中 var evaluate function string return eval string var func function string return new Function ret
  • SQL Server 2005:为什么命名事务?

    我一直在整理 SQL Server 中的整个嵌套事务 并且对嵌套事务的行为有了一些了解 当嵌套事务时 只有 最外层提交实际上会 犯罪 嵌套时 Commit Trans txn name 将始终适用于最里面 交易 即使 txn name 指的
  • 增强型 For 循环 - 对象数组

    好的 我有一个名为 Dog 的类 它接受两个参数 一个字符串和一个整数 该类有一个名为 bark 的方法 该方法根据传递给 Dog 构造函数的整数打印一个字符串 我还有一个名为 Kennel 的类 它创建了 5 个 Dog 的数组 看起来像
  • 只能检索有限数量的页面

    我想知道为什么我无法检索到第165页之后的更多页数据 page number is 165 4 image gif page number is 165 13 page number is 165 3 page number is 165
  • 复制 S3 存储桶(包括版本)

    有没有办法复制 S3 存储桶 包括对象的版本 我读到复制存储桶的方法是使用命令行工具 aws s3 sync s3
  • ASP.NET MVC 3 和 NHibernate 脚手架

    我找到了这篇文章 http blog stevensanderson com 2011 01 13 scaffold your aspnet mvc 3 project with the mvcscaffolding package htt
  • Heroku SSL 端点 - “没有这样的应用程序”

    有什么想法为什么当我访问 herokussl com URL 时 添加证书和 Heroku SSL 端点后 可能会收到 No Such App 错误 我按照这里的说明进行操作 https devcenter heroku com artic
  • 检测到依赖循环导入/无循环

    我正在尝试在 ES6 中设置 API 端点 在我的主服务器文件中 我尝试导入路由器模块 但收到错误 检测到依赖循环导入 无循环 请在下面找到我的代码以获得许可和帮助 import express from express import bo
  • 球体上的 3D 坐标为纬度和经度

    我得到以下信息 存在一个原点为 0 0 0 半径为 R 的球体 进行射线球体相交后 我知道 3D 空间中球体上的一个点 XYZ 直线穿过球体外壳的 3D 空间中的确切位置 对于我的程序 我想计算球体上 XYZ 点的纬度和经度 但我无法想出