直线和球体之间的交点

2024-01-18

我试图找到球体和直线之间的交点,但老实说,我不知道该怎么做。 有人能帮我解决这个问题吗?


将直线表示为函数t:

{ x(t) = x0*(1-t) + t*x1
{ y(t) = y0*(1-t) + t*y1
{ z(t) = z0*(1-t) + t*z1

When t = 0,它将在一个终点(x0,y0,z0). When t = 1,它将在另一个端点(x1,y1,z1).

写出到球心的距离(平方)的公式t (where (xc,yc,zc)是球体的中心):

f(t) = (x(t) - xc)^2 + (y(t) - yc)^2 + (z(t) - zc)^2

求解t when f(t) equals R^2 (R为球体的半径):

(x(t) - xc)^2 + (y(t) - yc)^2 + (z(t) - zc)^2 = R^2

A = (x0-xc)^2 + (y0-yc)^2 + (z0-zc)^2 - R^2
B = (x1-xc)^2 + (y1-yc)^2 + (z1-zc)^2 - A - C - R^2
C = (x0-x1)^2 + (y0-y1)^2 + (z0-z1)^2

Solve A + B*t + C*t^2 = 0 for t。这是正常现象二次方程 http://en.wikipedia.org/wiki/Quadratic_equation.

您最多可以获得两个解决方案。任何解决方案t0 和 1 之间的值是有效的。

如果您有有效的解决方案t,将其代入第一个方程以获得交点。

我假设你的意思是一条线段(两个端点)。如果您想要一条完整的线(无限长度),那么您可以沿线选取两个点(不要太近),然后使用它们。也让t可以是任何实际值,而不仅仅是 0 和 1 之间的值。

Edit:我修正了公式B。我混淆了这些标志。感谢 M Katz 提到它不起作用。

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

直线和球体之间的交点 的相关文章

  • 使用数学符号注释 Adob​​e Reader PDF

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

    我只是想知道在处理大数字时有哪些不同的除法策略 我所说的大数字是指 50 位数字 例如 9237639100273856744937827364095876289200667937278 82637448262718273966299344
  • 如何在Python中显示坐标网格线的变换?

    假设我有常规的笛卡尔坐标系 x y 并且我考虑一个矩形网格区域 D 分成小方块 我想看看域 D 如何在 Python 中的坐标变换 T x y gt u x y v x y 下映射 我正在寻找这样的东西 See here https mat
  • 确定解决迷宫问题的最小线段数

    我有一个问题 我需要定义一个具有最少数量的顶点的多边形 该多边形与不透明的图像中的每个像素相交或包含每个像素 令 N 为图像中的像素数 我唯一的假设是图像的边界 孔 内不能包含透明像素 并且至少有两个像素是不透明的 举个例子 假设我有以下图
  • Typescript:理解并集和交集类型

    我试图在打字稿中获得关于并集和交集类型的直觉 但我无法弄清楚这种情况 interface A a number interface B b boolean type UnionCombinedType A B type Intersecti
  • 包围一组点的多边形

    我有一组 S 点 2D 由 x 和 y 定义 我想找到 P 包围该组所有点的最小 含义 具有最少数量的点 多边形 P 是S 有没有已知的算法来计算这个 我在这个领域缺乏文化令人惊讶 感谢您的帮助 对于这个问题有很多算法 它被称为 最小边界框
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • 在网络上编写数学方程的最佳方法是什么?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我正在开发一个与数学相关的网页 并正在寻找一种将数学方程轻松写入网页的解决方案 目前我可以使用
  • Python 中使用 geoJSON 绘制多边形中的点

    我有一个包含大量多边形 特别是人口普查区 的 geoJSON 数据库 并且有很多长的纬度点 我希望存在一个有效的 Python 代码来识别给定坐标位于哪个人口普查区 但是到目前为止我的谷歌搜索还没有透露任何信息 Thanks 我发现了一个有
  • C++ 中求幂的函数是什么?

    如何计算一个数的幂 2 1 2 2 2 3 etc cmath 库中的 pow 更多信息here http en cppreference com w cpp numeric math pow 别忘了放 include
  • CGPoint 标量乘法 Swift

    我正在 SpriteKit 中构建一个平台游戏 并将为我的实体实现更新功能 以便它们根据重力和速度移动 但是 我需要使添加的速度量与增量时间成比例 以防止帧速率影响我的实体的移动方式 因此我将导入 GLKit 以便我可以使用标量函数 但是
  • 加快Python中一个点是否处于某个形状的顺序检查

    我有一个代码 用于顺序确定是否在我的中找到每对笛卡尔坐标DataFrame落入某些几何封闭区域 但我怀疑它相当慢 因为它不是矢量化的 这是一个例子 from matplotlib patches import Rectangle r1 Re
  • 从 1 到 20 亿,像 (23,29) 这样相差 6 的连续素数对的数量

    如何在考虑时间复杂度的情况下从 1 到 20 亿 使用任何编程语言且不使用任何外部库 找到像 23 29 这样相差 6 的连续素数对的数量 尝试过埃拉托色尼筛 但获得连续素数是一个挑战 使用了生成器 但时间复杂度非常高 代码是 def ge
  • 如何确保整数除法始终向上舍入?

    我想确保如有必要 整数除法总是向上舍入 还有比这更好的方法吗 目前正在进行大量选角工作 int Math Ceiling double myInt1 myInt2 更新 这个问题是我2013年1月博客的主题 http ericlippert
  • 将名称字符串编码为唯一的数字

    我有一大堆名字 数以百万计 他们每个人都有一个名字 一个可选的中间名和一个姓氏 我需要将这些名称编码为唯一代表这些名称的数字 编码应该是一对一的 即一个名称只能与一个数字相关联 一个数字只能与一个名称相关联 对此进行编码的明智方法是什么 我
  • 批处理文件中是否存在“Power to”功能? (指数)

    Problem 有没有办法将变量 乘以 数字或其他变量的批处理文件 有这个功能吗 Python 中的一个示例是您可以使用 为 到 的力量 EDIT 您可以在批处理文件中进行数学运算 http en wikipedia org wiki Ba
  • 如何在Python的SciPy中更改稀疏矩阵中的元素?

    我构建了一个小代码 我想用它来解决涉及大型稀疏矩阵的特征值问题 它工作正常 我现在要做的就是将稀疏矩阵中的一些元素设置为零 即最顶行中的元素 对应于实现边界条件 我可以调整下面的列向量 C0 C1 和 C2 来实现这一点 不过我想知道是否有
  • 从 x,y 屏幕空间坐标查找 2D 等距网格上的列、行(将方程转换为函数)

    我试图在屏幕空间点 x y 的二维等距网格中找到行 列 现在我几乎知道我需要做什么 即找到上图中红色向量的长度 然后将其与表示网格边界的向量的长度 由黑色向量表示 进行比较 现在我在数学堆栈交换中寻求帮助 以获得用于计算点 x y 与黑色边
  • 查找其索引的乘积可被另一个数字 X 整除的对的数​​量

    给定一个数组和某个值 X 找到满足以下条件的对的数量 i lt j a i a j and i j X 0 Array size lt 10 5 我想这个问题有一段时间了 但只能想出蛮力解决方案 通过检查所有对 这显然会超时 O N 2 t
  • 是什么导致 Java(冰雹序列)在我的程序中崩溃

    我制作了一个执行 通常称为 冰雹序列的程序 该程序基本上执行以下操作 创建一个int 值 并为其分配一个值 如果 int 是偶数 则将其除以二 如果 int 为奇数 则将其乘以三并加一 继续这个过程 直到 n 等于 1 它似乎适用于大多数数

随机推荐

  • 控件必须与文本标签关联

    我收到错误 控件必须与文本标签关联 这段代码是 i i 该错误与这个 eslint 规则 https github com evcohen eslint plugin jsx a11y blob master docs rules labe
  • Windows 相当于 UNIX pwd

    如何在 Windows 上的命令提示符中查找本地路径 这会在控制台中打印它 echo cd 或者将此命令粘贴到 CMD 中 然后您将获得pwd echo echo off echo echo cd gt C WINDOWS pwd bat
  • 将 pandas 转换为定义用于键值的列的字典

    有 pandas 数据框 test df 我的目标是将其转换为字典 因此我运行这个 id Name Gender Age 0 1 Peter M 32 1 2 Lara F 45 因此我运行这个 test dict test df set
  • 查找范围内缺失的日期 (php)

    我想识别 PHP 数组中缺失的日期 例如 这个范围 2013 06 12 2013 06 13 2013 06 26 2013 06 27 2013 06 29 缺少以下日期 2013 06 14 2013 06 15 2013 06 16
  • 如何删除数组中最后一个逗号和空格? Java [重复]

    这个问题在这里已经有答案了 伙计们 我想知道如何从数组中删除多余的逗号和空格 当我运行该程序时 它给我 1 2 3 4 5 我想要的是 1 2 3 4 5 主要必须保持不变 PrintArray 方法是我需要帮助的方法 参考重复的问题陈述
  • 如何从 iPhone (swift) 应用程序打开 WhatsApp?

    我在用webview对于我的 Swift 应用程序 我有 Share on WhatsApp 我的网站上的按钮在浏览器上运行良好 但在 iPhone 应用程序上 当我点击按钮时 没有任何反应 如何从我的应用程序打开 WhatsApp 我在用
  • 何时通过服务引用使用 WCF ChannelFactory [重复]

    这个问题在这里已经有答案了 我正在浏览 WCF 教程 发现这些教程指出我需要提供一个 mex 端点 以允许隐式向客户端添加服务引用 我想这允许 VS 在使用生成的 WSDL 文件时创建代理类 然而 我试图熟悉的代码库不使用隐式服务引用 相反
  • 将数据从表单提交到 django 视图

    当我打开 html 文件时 它会按预期显示 当我在文本框中输入数据并提交时 它会将我重定向到localhost myapp output 但为什么我在文本框中输入的数据没有提交 例如localhost myapp output data I
  • EclipseLink、EntityManager 需要两个持久性单元

    我有一个 jar 库 A 或 eclipse 中的项目 它有自己的持久性单元 META INF persistence xml 和一些实体类 以及使用该库的另一个项目 B 在项目 B 中还有持久化单元和实体类 在项目 B 中 我需要使用项目
  • 嵌入、对象和视频标签之间的区别?

    据我所知 我知道embed tag用于嵌入来自 youtube 等网站的视频 object tag适用于 Flash 视频和video tags受到HTML5 但我很好奇这些标签的深入细节 以及作为一名开发人员 应该在哪里使用哪个标签 em
  • SSRS - 后续页面内容区域中标题和 tablix 之间的空格/边距

    好吧 我知道这个问题很难消化 所以我希望这张附图能让我的问题更有意义 基本上我想在第一页之后在标题和 tablix 之间保留一些空间 我对标题使用底部边框 用户不希望看到表格和标题粘在一起 尝试放置空文本框 隐藏 但实际上不起作用 因为我无
  • django 错误无法导入名称“RemovedInDjango30Warning”

    伙计们 我对 Django 相当陌生 我刚刚开始从事一个个人项目 并决定滥用 pycharm 我认为它与错误有关 或不相关 当我跑步时python manage py runserver我收到下面发布的错误 我做了一些谷歌搜索 看起来它是由
  • C++中的vtable是什么[重复]

    这个问题在这里已经有答案了 可能的重复 为什么我需要虚拟表 https stackoverflow com questions 3004501 why do i need virtual table C 中的 vtable 是什么 到目前为
  • 纯虚函数调用

    我正在使用 boost python 来制作用 C 编写的 python 模块 我有一些带有纯虚函数的基类 我已将其导出如下 class Base virtual int getPosition 0 boost python class B
  • 如何在 elm 中按索引获取列表项?

    我有一个清单 现在我想要第 n 项 在哈斯克尔我会使用 但我找不到它的榆树变体 Elm 添加了数组0 12 1 http elm lang org blog announce 0 12 1 elm 并且在 0 19 中对实现进行了大规模修改
  • 如何在 Microsoft Access 中通过 VBA 设置 INSERT SQL 查询的参数值?

    我是 Access 新手 之前使用过 C SQL Server 和 Net 我有一个项目正在进行 我必须完成一些部分 该场景可以描述为 带有子表单的 Access 表单 一个Access查询 即上述子表单的数据源 有两个参数 显示为 Par
  • 使用 SyndicateFeed 读取 SyndicateItem 中的非标准元素

    在 net 3 5 中 有一个 SyndicateFeed 可以加载 RSS 提要并允许您在其上运行 LINQ 以下是我正在加载的 RSS 示例
  • 谷歌云端点返回 java long 作为 JSON 中的字符串

    我正在使用 google app engine 最新版本 1 9 30 我定义我的云端点如下 Api name app version v1 transformers EndpointDateTransformer class public
  • 如何在 IE 10/11 中可靠地将 XML 转换为字符串?

    当使用 jQuery 解析 XML 并将其转换回字符串时 IE 10 和 IE 11 未正确保留命名空间 除了编写我自己的 stringify 代码之外 还有其他可接受的方法可以在 IE 10 11 中执行此操作吗 这是我正在使用的代码 我
  • 直线和球体之间的交点

    我试图找到球体和直线之间的交点 但老实说 我不知道该怎么做 有人能帮我解决这个问题吗 将直线表示为函数t x t x0 1 t t x1 y t y0 1 t t y1 z t z0 1 t t z1 When t 0 它将在一个终点 x0