我正在从STEP文件中读取NURBS曲面,以及它们的边界曲线。现在我想细分这些表面。
我读过的每个算法都讨论了参数空间中的边界曲线,带有参数t的曲线,它映射到2D坐标(u,v),表面的参数坐标。
问题是在STEP文件中我有在世界空间中定义的边界曲线。我的问题是:有一种有效的方法可以将曲面上的曲线从世界空间转换为参数空间吗?
我能想到的唯一方法是从该曲线生成许多点,然后在参数空间中拟合一条新曲线,但我想有一种更有效的方法可以做到这一点,因为知道曲线位于表面。
由于
答案 0 :(得分:0)
如果3D边界曲线恰好是参数域(u,v)中2D边界曲线的3D映射,那么可能有更好的方法从给定的3D边界曲线计算这些2D边界曲线。但是,情况往往并非如此。对于双立方表面,从3度的2D边界曲线映射的精确3D边界曲线为18度。因此,任何CAD软件都不可能以精确的格式表示这些3D边界曲线。大多数情况下,它们只是近似值,并且只能在一定的公差范围内与表面足够接近。因此,如果您没有2D边界曲线的信息,通常需要在参数域中进行曲线拟合。该过程将是从3D曲线中采样点,将它们投影到表面上以找到相应的(u,v)值,然后根据这些(u,v)值进行曲线拟合。当然,在某些特殊情况下您可以使用简化算法。例如,当3D曲线与曲面的等参曲线匹配时。