algorithm - 如何有效地计算轴对齐边界框内的 3D 三角形面积?
问题描述
我想知道轴对齐边界框 (AABB) 内 3D 三角形的面积。我已经确定如何使用此处介绍的方法有效地检测三角形和 AABB 之间的碰撞:
http://fileadmin.cs.lth.se/cs/Personal/Tomas_Akenine-Moller/pubs/tribox.pdf
但是,我还没有找到一个好的算法来计算 AABB 内三角形的面积。如果我要自行推出解决方案,它看起来像:
- 检测三AABB重叠
- 测试是三角形在 AABB 内 -> 返回区域
- 对于 AABB 的每一侧,制作一个平面
- 为 6 个生成的平面中的每一个剪裁三角形。如果剪辑的超过 3 条边形成新的三角形
- 循环遍历新的三角形集并转到#2,直到集合中没有留下任何三角形
我认为这应该导致AABB内部的一组三角形,因此,它们的面积之和就是AABB内部基础三角形的面积?
解决方案
我可能会:
- 将三角形视为凸多边形并将其夹在每个 BB 平面上
- 在多边形平面中转换为二维多边形
- 使用鞋带公式计算其面积
推荐阅读
- wpf - 设置 WPFToolkit AutoCompleteBox
- web-applications - 如何在移动设备上使用身份验证器应用程序期间保留 Web 应用程序中的状态
- c++ - return 语句中的 C++ constexpr 函数
- tx-news - tx_news n:link 不想用 config.absPrefix 建立绝对链接
- php - recaptcha 身份验证后如何将 POST 数据传递到外部站点?
- spring - 打包操作是否构建项目?
- c# - PushButtonState.Default 和 PushButtonState.Normal 之间的逻辑区别是什么?
- css - 如何在引导程序中正确对齐?
- c# - 如何在运行时知道哪个项目正在使用另一个项目
- amazon-s3 - 如何在烧瓶中读取文件模式窗口