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

标签 autocad spline dxf

我正在尝试以编程方式在 dxf 文件中创建样条曲线。我需要使用拟合点,因为曲线需要通过指定的点。我知道我还需要使用控制点。有没有一个公式可以计算这些应该是什么?它是一个具有四个拟合点的闭合样条曲线。

提前致谢!

最佳答案

我认为这不是一件容易的事。除了控制点之外,您还需要确定结。有一个 DXF 阅读器/查看器 here (用 C++ 编写)声称支持样条曲线。也许你可以通过阅读代码找到一些信息。

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

Fit points vs control points

使用折线来近似样条线会更容易。这是折线的示例(从 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/

相关文章:

python-3.x - 如何使用 ezdxf 编辑 AutoCAD 图层描述

matlab - 将图形转换为二维图

python - 如何将此 AutoCAD VBA 代码转换为 Python?

c# - C# 中的 3D 样条插值(曲面插值)

c# - .NET 库绘制路线避开障碍物

python - .svg 到 .dxf(使用 Inkscape?)

c# - 无法使用 .Net 和 True View (AcCtrl) 将 .dwg 转换为 .pdf

autocad - 是否有用于解析 AutoCAD 文件的库?

r - ggplot2 情节在情节中的完美拟合

autocad - DXF 文件 - 无法在 Autodesk Viewer 中打开