我有一个 3D 表面(例如圆锥体)。它以等高线的形式投影到二维平面图上,即不同的Z在二维平面图上会有不同的线。问题出在轮廓上,如何通过插值恢复3D表面?我们只知道不同轮廓线之间的 z 差异。
最佳答案
您提到的“等高线”的技术术语是“等值线”。
给定一组等值线,您首先需要构建 3D 点云(只是 3D 空间中的点集合)。你分两个阶段来做。首先以均匀的间隔对每条等值线进行采样,得到二维点,然后将这些点升高适当的高度。
通过在任何地方跟踪它,可以很容易地以统一的间隔对一条线进行采样。您可以通过从最外层的线开始,一条一条地向内追踪,移除您追踪的每条线,并记录您追踪的线数,来了解一条线的高度。
当然你需要事先知道线条之间的高差是多少,最外面的线条(或任何其他可以作为引用的线条)的高度是多少
获得 3D 点云后,您可以使用多种表面重建算法中的任何一种。 This company例如制作一个应用程序来执行此操作,您可以从他们的站点下载一个命令行演示,该演示最多可获得 30,000 点。
关于algorithm - 3D表面重建算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/343108/