三角形 - 三角形相交测试

2024-01-08

我想知道是否有一些教程或指南来理解和在 3D 环境中实现三角形-三角形相交测试。 (我不需要知道交叉点发生在哪里,只需要知道发生了交叉点)

我本来打算按照理论 pdf 来实现它,但我很困惑

  1. 计算三角形 2 的平面方程。
  2. 如果三角形 1 的所有点都在同一边,则拒绝为平凡。
  3. 计算三角形 1 的平面方程。
  4. 如果三角形 2 的所有点都在同一边,则拒绝为平凡。
  5. 计算交线并投影到最大轴上。
  6. 计算每个三角形的间隔。
  7. 使间隔相交。

本指南的第 5 点。我真的不知道在问什么(都是5,6和7)。 XD

由于我在数学方面没有很高的知识(嗯,我知道大学的几次考试给我带来的结果(我是一个初级程序员XD)),请尝试对我尽可能简单。 :D (我尝试在谷歌上搜索,但大多数链接都指向一些充满公式的 4-5 页,我真的不想知道,也不明白。)

谢谢您的帮助


你说:

我想知道那里是否有 一些教程或指南来理解 并实现一个三角三角 3D 环境中的相交测试。

然后你说:

大多数链接指向一些 4-5 充满公式的页面我真的不知道 关心知道

我注意到这两种说法完全矛盾。那么是哪一个呢?您是否想了解三角形与三角形相交的工作原理,或者您只是想要一个可以工作但您不理解它的实现?

并不是所有这些网页都充满了不必要数学。所有的数学都是必要的了解交集算法的工作原理。从头开始,了解其全部工作原理。

一旦您知道这些词的含义,步骤 5、6 和 7 就很容易理解。相交线是两个平面相交所形成的线。每个三角形都位于一个平面上。有以下三种情况:

  • 平面平行且不相交。三角形显然不相交。
  • 这些平面是同一平面。三角形可能相交,也可能不相交。
  • 这些平面是在一条线上相交的两个不同平面。如果三角形相交,它们显然必须在那条线上相交。

假设我们处于第三种情况。计算第一个三角形中包含的相交线段。计算第二个三角形中的相交线段。现在的问题是“这些部分是否重叠?”

您可以通过将线段投影到方便的轴上并查看该轴上的线段是否重叠来解决此问题。基本上,它的工作原理是这样的:想象一下你正在将光线照射到线段上,使得它们的阴影落在轴上。如果轴上的阴影相交,则线段必须相交。如果轴上的阴影之间存在间隙,那么显然线段之间必然存在间隙,因此三角形不相交。

如果您想了解这是如何工作的,那么您将需要了解这一事实all这些东西——所有计算平面如何相交以及如何投影到轴上的代数。这都是必要的。所有这些东西都是基本构建块,将构建更复杂的转换、投影等,因此如果您想走得更远,请彻底了解基础知识。

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

三角形 - 三角形相交测试 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 用于评估数组单调性的算法(即判断数组的“排序性”)

    EDIT 哇 很多很棒的回复 是的 我使用它作为适应度函数来判断遗传算法执行的排序的质量 因此 评估成本很重要 即 它必须是快速的 最好是O n 作为我正在使用的人工智能应用程序的一部分 我希望能够根据候选整数数组的单调性 也称为 排序性
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 尝试添加强类型视图在 MVC 项目中找不到任何类

    我有一个非常奇怪的问题 每当我尝试在 ASP NET MVC2 中使用 添加视图 对话框 然后尝试通过从可用类的下拉列表中选择 视图数据类 来 创建强类型视图 时 没有任何类 模型 在我的 MVC 项目中出现了 非常奇怪的部分是我的 MVC
  • 如何在 KeyDown 中确定 Shift + Tab 被按下

    How can I determine in KeyDown that Tab was pressed private void DateTimePicker BirthDate KeyDown object sender KeyEvent
  • 当我们存储长度小于10的字符串时,varchar(10)和varchar(1000)有什么区别吗?

    我理解之间的区别char and varchar但我不确定的确切含义varchar最大长度 当我们存储string长度小于10的有什么区别varchar 10 and varchar 100 我认为这两种情况都使用相同的空间并具有相同的性能
  • 如何在 F# 中连接字符串列表?

    我现在正在尝试这个 但我还没有完全解决方法签名 有人吗 messages 是 seq string 的一个字段 let messageString List reduce messages fun m1 m2 gt m1 m2 Enviro
  • 创建通用循环缓冲区

    鉴于希望从其内容中抽象出循环缓冲区的结构 并从以下代码段开始 由this http en wikipedia org wiki Circular buffer维基百科条目 typedef struct int value ElemType
  • 使用WebFlux的Reactive编程如何处理依赖的外部api调用

    我是响应式编程的新手 我想知道的一件事是 假设我们有一个 api 它在内部调用 3 个其他 api 其中第一个 api 的结果被输入到第二个 api 而第二个 api 的输出被输入到第三个 它不会减少到基于正常单线程的执行吗 如果是的话 那
  • PowerShell InvokeGet 找不到目录属性

    我们需要检索活动目录中有关 终端服务 的信息 为此 我创建了一个在大多数情况下都能正常工作的函数 但是 对于某些用户 我们遇到了问题 代码 Function Get ADTSProfile CmdletBinding Param Param
  • 我们实际上可以将两组多个变量传递到 dplyr 中的 mutate 中吗

    This question https stackoverflow com questions 66174874 using dplyracross with two sets of variables尽管三个答案让我在思考这个问题时产生了
  • 如何在 Rail 2.3.5 中生成 mongoid.yml 配置?

    正如标题所示 如何在 Rail 2 3 5 上生成默认的 mongoid yml 配置文件 我尝试使用 rails generated mongoid config 命令 但它只是生成一个新应用程序 而且 我想在 mongoid 中使用 h
  • 仅使用gunicorn、django 和whitenoise 如何为媒体提供服务?

    我的网站终于可以正常工作了 但在以下情况下无法提供媒体文件debug False我应该怎么办 我经历了地狱般的尝试让它与 nginx 一起工作本教程 https www digitalocean com community tutorial
  • 如何在 Bash 脚本中运行 sudo 命令?

    我想运行以下示例 bash 脚本 该脚本需要 sudo 密码才能执行命令 bin bash kinit needs sudo password vi hello txt 运行上述脚本时 它要求输入密码 我如何在命令本身中传递用户名和密码 或
  • 检查一个数是否能被3整除[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 编写代码来确定一个数字是否能被 3 整除 该函数的输入是single位 0 或 1 如果到目前为止收到的数字是可被 3 整除的数字的二进制表示形式 则
  • 如何动态找出具有自定义属性的所有方法

    我有一个简单的挑战 我动态地需要找出 C 中具有特定属性的所有方法 我将从另一个应用程序动态加载程序集 并且需要找出确切的方法 程序集如下所示 基础 dll Class Base testmethod public void method1
  • Twitter 以编程方式添加照片

    我为 Firefox 制作了裁剪屏幕截图和上传插件 我想带来一个允许用户发布图像的功能 手动 像人类一样 的过程是这样的 打开 twitter com 如果未登录 请告诉用户登录 点击 新推文 就完成了 Attach images by d
  • 比较两个 git 存储库(包括所有分支)

    我有同一个 git 存储库的两个分支 我想检查它们是否完全相同 因此可以安全地删除其中一个而不丢失任何信息 虽然我知道如何比较单个分支 但我想问是否有一种简单的方法来比较所有分支 标签等 最快的方法是添加第二个遥控器并比较输出git ls
  • 如何用 C++ 编写“meta if else if..”?

    我刚刚学习 C 元编程的基础知识 我认为很高兴看到其他人如何解决以下问题 另外 很高兴看到使用 Boost 元编程库的解决方案 因为我认为它们对我来说是黑暗的角落 那么问题来了 是否可以重写得更优雅呢 假设我们有以下结构 template
  • 如何使用 mocha 和 supertest 测试带有标头参数的 Express Rest api?

    我必须测试我的其余 api 某些路由需要用户身份验证令牌的 http 请求标头中的值 我已将有趣的业务逻辑分离为纯 JavaScript 代码 但我找不到方法来测试在 http 请求标头中需要令牌的路由 欢迎摩卡和 或超级测试的任何其他替代
  • Bootstrap 响应式输入表单字段

    我正在使用 input lg 使表单字段变大 我的期望是 当视口缩小时 引导程序默认小于 768px 表单字段会变小并采用正常设置 但事实并非如此 有任何想法吗 bootstrap 可以处理这种情况吗 UPDATE HTML
  • 为什么抽象类有虚函数表?

    关于this https stackoverflow com questions 2592438 does an abstact classes have a vtable post 对于使用 vtable 的实现 答案是 是的 通常 你
  • 三角形 - 三角形相交测试

    我想知道是否有一些教程或指南来理解和在 3D 环境中实现三角形 三角形相交测试 我不需要知道交叉点发生在哪里 只需要知道发生了交叉点 我本来打算按照理论 pdf 来实现它 但我很困惑 计算三角形 2 的平面方程 如果三角形 1 的所有点都在