graphics - 从 3D 模型(网格)获取边缘点
问题描述
我想找到任何给定网格的锐边。作为参考,这是一张椅子的网格:
很明显,椅背的边界是一条边,四条曲线勾勒出胳膊和腿等的轮廓。
我想沿这些边缘采样点。有没有已知的算法可以做到这一点?
我想到的几种方法:
三角形边缘检测
考虑网格中的每一对连接点。这些段中的每一个都应该是两个三角形的一部分。如果两个三角形的表面法线之间的角度足够宽,则该段应被视为边。
点云边缘检测
使用open3d
,我可以轻松地将网格转换为点云,其中每个点都有一个表面法线。我可能会在点云中搜索表面法线的突然变化。虽然我认为这可能会变得相当复杂,因为我必须找到每个点的最近邻居。
解决方案
推荐阅读
- cassandra - Cassandra 3.6.0 错误:HashedWheelTimer 在 Connection.release 上抛出 StackOverflowError
- gradle - Idea Gradle 集成将类添加为测试源树,但不包含在测试源集中
- html - 如何使模态选项卡成为必需?另外如何使用单个提交按钮处理单独的表单?拉拉维尔
- machine-learning - 如何将向量转换为矩阵,每行等于pytorch中的向量?
- c# - 升级 .NET 版本后,TwoWay 或 OneWayToSource 绑定无法在只读属性上工作
- ionic-framework - 左拆分窗格宽度大小 - IONIC 3
- php - PHP 内联 if 语句总是返回 false
- c# - 我试图运行 github 中提供的演示,但它们都没有工作。未能获得程序集参考
- xamarin.forms - 选择器弹出长文本换行 xamarin 表单
- join - 连接操作中的外键