直线和球体之间的交点

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(使用前将#替换为@)

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

  • 帮我用光线追踪器解决这个错误

    我不会针对这个问题发布任何代码 因为它需要太多的上下文 但我将从概念上解释我正在做什么 我正在构建一个使用仿射变换的简单光线追踪器 我的意思是 我将来自相机坐标的所有光线与通用形状相交 这些形状都具有关联的仿射变换 并且光线在与场景对象相交
  • Java 中的微分方程

    我正在尝试用java创建一个简单的SIR流行病模型模拟程序 基本上 SIR 由三个微分方程组定义 S t l t S t I t l t S t g t I t R t g t I t S 易感人群 I 感染人群 R 康复人群 l t c
  • 在小于 O(n) 的时间内检查凸多边形交集?

    我有 2 个凸多边形 2d 我想检查这 2 个多边形是否相交 事实上 我会多次移动和旋转多边形 所以我也可以做一些预计算来获得这个问题的快速答案 我正在寻找一种低复杂度的算法 我知道可以检查一个点是否位于 O log n 的凸多边形中 我想
  • 在 3d 空间中的两个平面之间进行插值

    我正在开发一种工具 可以让您在 3D 体积 上圈出 包围事物 我想通过标记 切片 1 和 3 并从该信息 填充 切片 2 来节省时间 两个简单的解决方案是 1 slice2 slice1 AND slice3 gets the overla
  • 如何在Python中获得更精确的十进制值[重复]

    这个问题在这里已经有答案了 from math import sqrt a 1e 8 b 10 c 1e 8 x1 b sqrt b 2 4 a c 2 a x2 b sqrt b 2 4 a c 2 a print x1 format x
  • BODMAS系统的加法和减法

    我一直在构建一个简单的公式计算器 但一直被加法和减法困扰 正如您应该知道的 在计算方程时 您遵循优先级算术规则 即括号 顺序 幂函数 除法 乘法 加法和减法 问题是加法和减法具有相同的优先级 因此您可以从左到右阅读 到目前为止 这是我的代码
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • 为什么反向传播神经网络中必须使用非线性激活函数? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我一直在阅读一些有关神经网络的内容 并且了解单层神经网络的一般原理 我理解需要额外的层 但为什么要使用非线性激活函数 这个问题后面跟着这个
  • 转换 google.maps.Point 中的 (x, y) 像素坐标

    我试图根据我的 x y 像素坐标 当然还有地图选项 例如缩放和中心 找出 LatLng 为了做到这一点 我发布了另一个question https stackoverflow com questions 25219346 how to co
  • 有没有办法根据值是大于 0.5 还是小于 0.5 来进行下限/上限?

    我正在尝试舍入我的价值观 以便如果它是0 5或更大 则变为1 否则就变成0 例如 3 7 gt 4 1 3 gt 1 2 5 gt 3 有任何想法吗 Math Round 3 7 MidpointRounding AwayFromZero
  • 最小对的总和

    Given 2N点 in a 2D plane 你必须将它们分组为N pairs使得所有对的点之间的距离的总和是最小可能值 所需的输出只是总和 换句话说 如果a1 a2 an分别是第一对 第二对 和第 n 对点之间的距离 则 a1 a2 a
  • 可以容纳居中内容的响应式 CSS 圆圈

    我正在寻找一种方法来创建一个可以容纳居中内容的响应式 CSS3 圆圈 关于圈子 我发现了一些很好的信息这个问题 https stackoverflow com questions 12945891 responsive css circle
  • JavaScript 或 IEEE-754 中的舍入怪癖?

    我在一个单元测试中遇到了一个奇怪的问题 我在 JavaScript 中得到了意外的舍入结果 2 005 toFixed 2 produces 2 00 2 00501 toFixed 2 produces 2 01 最初我怀疑这只是 Web
  • 生成随机数背后的数学(崩溃游戏 BTC Casino)

    我正在开发一款基于网络的游戏 其中有多个迷你游戏 我们坚持还添加一个在赌博界非常流行的崩溃游戏 然而 我们一直在努力理解生成随机 几乎不可预测 数字的概念 大多数赌博网站都会提供哈希值等来证明数字未被篡改 我们真的不需要这个 因为我们的游戏
  • 合并多边形的高效算法

    我有一个多边形列表 在这个列表中 一些多边形重叠 或者接触其他多边形 我的任务是合并所有相互重叠或接触的多边形 我有一个union执行此操作的方法 做到这一点最有效的方法是什么 我目前能想到的是循环遍历多边形列表 检查合并列表以查看该多边形
  • OpenCV 旋转图像而不裁剪澄清

    我想扩展这个主题 参考用户 Lars Schillingmann 给出的这个 SO 问题和接受的答案 在 C 中的 OpenCV 中旋转图像而不裁剪 https stackoverflow com questions 22041699 ro
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅
  • Python:快速提取大量列表中所有可能的2组合之间的交集

    我有一个大约的数据集 9K 可变长度列表 1 到 100K 元素 我需要计算交集的长度所有可能的 2 列表组合在此数据集中 请注意 每个列表中的元素都是唯一的 因此它们可以在 python 中存储为集合 在 python 中执行此操作最有效
  • 围绕二维坐标系中的特定点缩放

    Below is an image my coordinate system 我想做的是 我想开始围绕画布中的特定点进行缩放 缩放工作正常 但我的问题是我不知道如何计算缩放时移动画布的量 请注意 我我没有使用canvas scale 我只是
  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我

随机推荐

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

    我收到错误 控件必须与文本标签关联 这段代码是 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