对现有答案的评论:
在我看来,Mau 和 martient 的回答描述了用多边形网格逼近已知形式的问题的解决方案(而且你没有已知的形式)。
Dave 提到的算法可以平滑任何形式,但不一定以预期的方式。
如果您查看您的答案,您会发现新点来自点之间的线性插值,如果这对您来说足够好,那么所有解决方案都是可比较的(戴夫的除外)。
网格密度的这种增加不会使生成的网格看起来“更好”——更类似于原始形式。如果这还不够好,那么您首先必须确定您尝试用网格表示的实际形式/形状是什么(如果您可以扩展您的示例,它可能会更明显;这个工具是否只创建圆形网格或者它可以采用任何形状并“填充”它?)。
此外,您应该注意到您不使用多边形网格,而是使用曲线网格(可能是bezier),这是某些答案不会直接适用于您的问题的另一个原因。
编辑:
在仔细研究 corel 如何做到这一点并假设您实际上不仅知道曲线(!)之后:
- 你从一组曲线开始,在我看来你有水平和垂直曲线开始
- 如果你想提高分辨率(例如水平分辨率),你可以取两条连续的垂直曲线并将它们通过的水平曲线的每一段在中点分开,从而创建一组定义新曲线的点;您还可以插入曲线通过该点的角度
替代文字 http://img706.imageshack.us/img706/5693/path5818.png
上面的(手动绘制的)图片显示试图说明 a)添加您将以这种方式生成的新曲线(红色)。b)添加线性插值折线(蓝色),这更倾向于多边形网格方法(因此您可以判断这是否适合您)
注意:根据您准备网格的算法,将网格线视为曲线可能会或可能不会有任何好处(红色和蓝色解决方案之间的差异对于某些算法可能可以忽略不计,而对于其他算法很重要)。如果算法只是期望点,那么您还应该查看如何用点近似贝塞尔曲线(通读这可能会有所帮助;尽管您不需要像素精度)。
为了获得最高精度/最佳结果,您应该首先增加曲线的密度并用线条近似它们。