我有一个 3D 表面(例如圆锥体)。它以轮廓的形式投影到二维平面上,这意味着不同的Z在二维平面上会有不同的线。问题是从轮廓开始,如何利用插值来恢复3D表面?我们只知道不同轮廓线之间的 z 差异。

有帮助吗?

解决方案

你提到的“轮廓”的技术术语是“异行”。结果 如果给定了,你首先需要构建一个三维点云(只是在3D空间中的点的集合)异行。你这样做,在两个阶段。首先以均匀的时间间隔采样每个异行,你得到的2D点,然后你通过适当的高度抬高点。结果 采样以均匀间隔的线可以通过所到之处跟踪它可以容易地完成。您可以从最外侧线,并开始朝内跟踪一个线路之一,除去每次跟踪线并跟踪你多少行追踪知道线的高度。结果 当然,你需要事先知道是什么线之间的高度差和什么是最外轮廓线的高度(或可作为参考的任何其它线)

一旦你有一个3D点云可以使用许多表面重建算法中的任何一个。 本公司的例如使得这确实是一个应用程序,你可以从他们的网站下载一个命令行演示这将高达30000点工作。

其他提示

在这种情况下,如果您的点位于 z=f(x,y) 中或者您的形状是凸的,则表面重建算法会浪费时间。

对于 z=f(x,y) 是简单的解决方案

  1. Delaunay三角剖分仅使用X,Y坐标
  2. 使用之前的三角测量绘制曲面,这次也使用 z。工作完成了!

你的形状是凸的,使用卷积算法

你的形状是凹的使用:http://www.advancedmcode.org/surface-recostruction-from-scattered-points-cloud-mycrust-robust.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top