假设您有一个三维对象,表示为某种常见文件格式中的三维网格。您如何设计算法将该网格分解为一个或多个二维“网络” - 也就是可以剪下和折叠以创建原始三维对象的二维表示。
算法需要考虑以下因素之一:
- 任何给定对象可能存在多个分解 - 处理将网格适配到固定大小的画布(纸张)。 - 识别网络中两个面板会重叠(因此无效)的情况。 - 如果网格由于重叠或页面大小限制而不能表示为单一网格,则将其分解为多个网格。 - 在适当的位置生成标签,用于连接相邻面。
显然,退化案例只需为每个面创建一个网格,并在一半的边缘上添加标签。这显然不是理想的情况:理想情况是单个连续网格。对于复杂形状,现实可能处于中间某个地方。
我意识到找到最优网络(最少网络/最少页面)可能具有计算代价,但要找到“足够好”的网络的良好启发式方法就足够了。
算法需要考虑以下因素之一:
- 任何给定对象可能存在多个分解 - 处理将网格适配到固定大小的画布(纸张)。 - 识别网络中两个面板会重叠(因此无效)的情况。 - 如果网格由于重叠或页面大小限制而不能表示为单一网格,则将其分解为多个网格。 - 在适当的位置生成标签,用于连接相邻面。
显然,退化案例只需为每个面创建一个网格,并在一半的边缘上添加标签。这显然不是理想的情况:理想情况是单个连续网格。对于复杂形状,现实可能处于中间某个地方。
我意识到找到最优网络(最少网络/最少页面)可能具有计算代价,但要找到“足够好”的网络的良好启发式方法就足够了。