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