样条曲线反求控制点
對于開曲線,關(guān)于首末端點條件,采用了兩種算法進行比對:端點切矢,自由端點。下面只介紹核心部分,其他參考教材即可。
測試思路:(1)根據(jù)型值點求出控制點;(2)由型值點在AutoCAD畫出圖形輸出DXF文件;(3)將(1)求出的控制點在(2)中添加進去,用于和CAD計算的結(jié)果做比對。
一、端點切矢法:
最主要的是切矢怎么給,采用三點圓法求端點切矢(參考《自由曲面造型方法及五坐標(biāo)數(shù)控加工的研究》),切矢給了,方程個數(shù)也就夠了,可以求出控制點了。
下面是比對:
放大后的細(xì)節(jié)部分:
可以看出,前面幾段曲線是有點差別的,中間部分基本重合。
二、自由端點法:
算法的思想如下:
1、已知n個型值點(Pi, i=1,2,3…n),求n+2個控制點(V1.....Vn+2)
2、在首末端點:V1 = P1,? Vn+2 = Pn
3、6*P1 = 9*V2 -3*V3;6*Pn = -3*Vn + 9*Vn+1
紅色圈出來的部分為添加的端點條件。
比對發(fā)現(xiàn)基本重合,但是前幾段放大后還是有細(xì)微的差別。但是相對端點切矢的算法,效果好很多
放大后的細(xì)節(jié):
由于不知道autoCAD采用的是什么算法,無法完全重合它算出來的圖形。問題在于,不知道它是怎么定義起點切向和終點切向的,CAD的切向是按角度給的,默認(rèn)0,這個角度是誰與誰的,暫未調(diào)查出來。
總結(jié)
- 上一篇: python如何获取版本信息判断当前的p
- 下一篇: FileNotFoundError: C