三角形非平面多边形

时间:2012-09-13 16:57:13

标签: 3d polygon mesh triangulation

我想对非平面多边形进行三角测量(即顶点位于同一个3D平面中)。多边形由许多点(数百个)组成。三角形表面不必是光滑的。事实上,它越密集越好。

我最初的想法是:

  • NURBS
  • 在“多边形内”生成其他点并应用3D Delaunay三角剖分。
  • 只需将一个(或几个)顶点“放在中间”并将它们与轮廓顶点连接起来。

我不确定这些想法中哪些适用于我的情况,或者可能还有更好的方法?

更多详情: 即使轮廓上的点是数百个,它们也可以分组为3到10个子集,因此每个子集都非常接近一条线。这样生成的线仍然不在同一平面上。人们可以把它想象成一群鸟,它们以多边形飞行,但不完全在同一垂直高度上飞行。

2 个答案:

答案 0 :(得分:8)

我最终做了以下事情:

  1. 将飞机安装到各点上。
  2. 将点投射到飞机上。
  3. 将点转换为平面拟合的坐标系,以便每个点都具有2D坐标(x,y)和深度z
  4. 计算点云的边界。
  5. 在边界内生成额外的2D点(可以使用等距点或扭曲点,无论人们喜欢什么密度)。
  6. 对所有点(边界+生成的点)运行2D Delaunay三角剖分。
  7. 根据边界深度值插值生成的内点的深度值。可以使用任何类型的插值 - 我使用了MATLAB的triscatteredinterp(),它运行得很好。
  8. 使用(3)
  9. 中的逆变换翻译所有点
  10. 使用(6)中的三角测量和(8)中获得的点。
  11. 您可以在此处查看结果: http://www.youtube.com/watch?v=4AqHxKsM7Iw&feature=g-upl

答案 1 :(得分:0)

您可能想查看Point Cloud Library。除此之外,它还可以进行表面重建。