0
我想在dxf文件中以编程方式创建样条曲线。我需要使用拟合点,因为曲线需要通过指定的点。我知道我也需要使用控制点。有没有一个公式来计算这些应该是什么?它是一个封闭的样条线,有四个合适的点。如何使用拟合点创建dxf样条曲线?
在此先感谢!
我想在dxf文件中以编程方式创建样条曲线。我需要使用拟合点,因为曲线需要通过指定的点。我知道我也需要使用控制点。有没有一个公式来计算这些应该是什么?它是一个封闭的样条线,有四个合适的点。如何使用拟合点创建dxf样条曲线?
在此先感谢!
我觉得这不是一件容易的事。除了控制点之外,您还需要确定节点。 DXF阅读器/查看器here(用C++编写)声称支持样条曲线。也许你可以通过阅读代码找到一些信息。
AutoCAD使用近似曲线的NURBS曲线(曲线仅通过第一个和最后一个点)。在用户界面中,插值样条曲线(曲线经过拟合点),因此在读取/写入DXF文件时会进行翻译。如果您创建一个封闭的点有4个拟合点,你会看到有DXF文件中的7分控制:
使用折线近似的样条曲线会比较容易。下面是(从0,0开始L形 - > 100 0 - > 100,50)的折线的样品
0
LWPOLYLINE
5
D5
330
70
100
AcDbEntity
8
0
100
AcDbPolyline
90
3
70
0
43
0.0
10
0.0
20
0.0
10
100.0
20
0.0
10
100.0
20
50.0
计算从拟合点的控制点的位置,可以咨询此page(§24&§25)。事实上,你需要扭转Casteljau的算法(对于Bezier曲线;我不知道它对NURBS是如何工作的)。
是的,非常感谢Maxence - 我也有类似的结论。我正在尝试按照您的建议使用多段线 - 您是否知道我可以看到的任何示例?它看起来像多线实体一样,我也需要顶点实体。 – AesculusMaximus
如果您编写的版本> R12的DXF,您可以使用LWPOLYLINE而不是POLYLINE,则不需要额外的VERTEX实体。 – Maxence
我下载了引用的代码。这个代码没有帮助试图发布它在这里,但它达到了stackoverflow字符限制。无论如何,它充满了拼写错误和变量,如:AMag,k NP,Mat,Bx,By,Cx,Cy。任何地方都无法解释这些变量。 – Dustin