我正在尝试以编程方式在 dxf 文件中创建样条曲线。我需要使用拟合点,因为曲线需要通过指定的点。我知道我还需要使用控制点。有没有一个公式可以计算这些应该是什么?它是一个具有四个拟合点的闭合样条曲线。
提前致谢!
最佳答案
我认为这不是一件容易的事。除了控制点之外,您还需要确定结。有一个 DXF 阅读器/查看器 here (用 C++ 编写)声称支持样条曲线。也许你可以通过阅读代码找到一些信息。
AutoCAD 使用 NURBS,它们是近似曲线(曲线仅通过第一个点和最后一个点)。在用户界面中,样条曲线被插值(曲线经过拟合点),因此在读取/写入 DXF 文件时会进行转换。如果您创建具有 4 个拟合点的闭合点,您将看到 DXF 文件中有 7 个控制点:
使用折线来近似样条线会更容易。这是折线的示例(从 0,0 -> 100, 0 -> 100, 50 开始的 L 形)
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 算法(对于贝塞尔曲线;我不知道它对于 NURBS 是如何工作的)。
关于autocad - 如何使用拟合点创建 dxf 样条曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32806116/