从3D三次贝塞尔曲线的路径创建曲面

时间:2014-07-08 07:50:03

标签: graphics 3d bezier

我有一个3D立方贝塞尔曲线列表,这样曲线相互连接并关闭一个循环。

我正在寻找一种从贝松线曲线创建曲面的方法。最终我想对表面进行三角测量并将其呈现在图形应用程序中。

是否存在表示三次贝塞尔曲线段闭合路径的算法?

1 个答案:

答案 0 :(得分:1)

看起来你只知道表面细节的一部分(由贝塞尔曲线给出),你要从中推断出表面。作为一个简单的例子,我想象一堆3D中的圆圈,其中心和半径将被重建为一个球体。

如果是这种情况,您可以使用level sets。对于水平集,您可以定义一组输入参数,这些参数定义外部因素对表面施加的力和表面的“张力”。

粗略地说,水平集定义了表面随着时间的推移而展开(或收缩)的行为。当它扩展时,它会尝试在满足其他边界条件的同时保持它smoothness - 就像在这种情况下“粘住”圆圈一样。因此,如果你想要一堆圆圈的球体,那么圆圈会施加很大的力量,而表面也会非常紧张。

Physbam有一个关卡集的开源实现。

CGALPCL还提供了许多方法,可以根据点集和隐式曲面等事物生成曲面。您可以根据自己的需要调整其中一种。

如果您想自己实施算法,可以查看他们使用的算法。我认为其中至少有一个使用Poisson Surface Reconstruction算法。