【问题标题】:3D Mesh: How to detect if a Surface/Mesh is folded according to a Projection plane3D Mesh:如何检测 Surface/Mesh 是否根据投影平面折叠
【发布时间】:2018-09-19 12:32:40
【问题描述】:

我有一个程序可以接受一个网格和一个平面 并将 3D Mesh 投影到平面上。 但是,该程序仅在 3D 网格未根据给定平面“折叠”时运行良好。

这里的“折叠”是指 3D 网格上的至少两个 3D 面/边投影到目标平面上的两个相交或重叠的 2D 面/边。

这是用于说明的 3D 网格图片。

例如在图片中,如果我将 XY(水平)平面描绘的 3D Mesh 作为输入,则程序运行良好。 但是,如果上面的 3D 网格是用 XZ 或 YZ(两个垂直)平面给出的,我想生成一个例外。 在给定投影平面的情况下,如何通过算法检测 3D 网格是否“折叠”?

【问题讨论】:

  • 只需执行投影并检查是否有交叉点。没有比这更优雅的解决方案了。
  • @NicoSchertler,你至少知道这里的科学/技术问题叫什么名字吗?我确信有一项研究可以为我指明正确的方向。
  • 您正在尝试确定投影是否为单射/双射。这通常是表面参数化中面临的问题。这种情况的一个变体是局部注入性,在这种情况下,您会尝试防止折叠但允许(远距离部分的)全局交叉点。
  • 谢谢,伙计,这正是我想要的。

标签: math 3d geometry mesh projection


【解决方案1】:

如果表面法线始终朝向某个方向,那么在没有“折叠”的情况下,投影面将具有一致的法线方向。如果输入网格方向良好,只需检查结果面法线是否都指向一个平面侧。如果不是,则首先通过选择一个起始面来定向表面面并展开它的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 2018-12-24
    • 2021-10-18
    • 2011-11-25
    相关资源
    最近更新 更多