如何使用拟合点创建dxf样条曲线?

Aes*_*mus 3 autocad spline dxf

我正在尝试在dxf文件中以编程方式创建样条曲线。我需要使用拟合点,因为曲线需要通过指定的点。我了解我也需要使用控制点。有没有公​​式可以计算出这些值?它是带有四个拟合点的闭合样条线。

提前致谢!

Max*_*nce 5

我认为这不是一件容易的事。除控制点外,您还需要确定结点。有一个DXF读取器/观众此处(用C ++编写),其权利要求书以支撑花键。也许您可以通过阅读代码找到一些信息。

AutoCAD使用的NURBS是近似曲线(曲线仅通过第一个点和最后一个点)。在用户界面中,将插入样条曲线(曲线通过拟合点),因此在读取/写入DXF文件时会进行平移。如果创建带有4个拟合点的封闭点,则DXF文件中将看到7个控制点:

拟合点与控制点

使用折线来近似样条线会更容易。这是折线的样例(L形从0,0-> 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
Run Code Online (Sandbox Code Playgroud)

要根据拟合点计算控制点的位置,可以查阅此页面(第24和§25 )。实际上,您需要反转Casteljau的算法(对于Bezier曲线;我不知道它对NURBS的工作原理)。