源地址為:http://m.blog.csdn.net/nibiewuxuanze/article/details/48229393。
三階貝塞爾曲線被廣泛用于各種需要平滑曲線的設(shè)計領(lǐng)域,一般通過多段三階貝塞爾曲線順次連接,構(gòu)成比較復(fù)雜的曲線。
比如下圖中,A、B、C和D控制紅色曲線,D、E、F和G控制綠色曲線,G、H、I和A控制藍(lán)色曲線。
對于上面紅色曲線,我們把A和D稱為端點(diǎn),B和C稱為柄點(diǎn),可以發(fā)現(xiàn)端點(diǎn)總是被相鄰曲線共用。
每一段三階貝塞爾曲線均由兩個端點(diǎn)和兩個柄點(diǎn),一共四個控制點(diǎn)進(jìn)行控制,對于其中每個控制點(diǎn)的改變,均會影響這段曲線所有部分。
出于曲線微調(diào)的目的,在柄點(diǎn)B的移動過程中,只改變端點(diǎn)A到點(diǎn)E的那一段曲線(E點(diǎn)的位置固定起來),而對于點(diǎn)E到端點(diǎn)D的部分則維持不變。
這樣的情況下,就需要分拆這段貝塞爾曲線為兩段,端點(diǎn)A到點(diǎn)E為一段,點(diǎn)E到端點(diǎn)D為一段,然后再單獨(dú)修改端點(diǎn)A到點(diǎn)E的那段曲線。
展示一下曲線分開后,單獨(dú)控制的效果:
我們知道A、B、C和D四個控制點(diǎn),描述了上面的三階貝塞爾曲線,那么就有以下兩個問題:
第一,分拆后的曲線AE和曲線ED,能否用三階貝塞爾曲線描述?
第二,如果能夠的話,那么曲線AE和曲線ED的控制點(diǎn)在哪里?
對于第一個問題,答案是肯定的。
可以證明曲線AE和曲線ED上的三階貝塞爾曲線的參數(shù)方程,經(jīng)過對參數(shù)變量的變換,可以轉(zhuǎn)換為完整三階貝塞爾曲線的參數(shù)方程(參數(shù)變量的取值范圍調(diào)整到對應(yīng)的定義域)。其中,曲線AE和曲線ED的三階貝塞爾曲線的參數(shù)方程的參數(shù)變量,與完整三階貝塞爾曲線的參數(shù)方程的參數(shù)變量,有著確定的函數(shù)關(guān)系。
那么,下面就針對第二個問題,來尋求解答。
由三階貝塞爾曲線的參數(shù)方程定義
可以將點(diǎn)E定義為t等于特定值e (0<e<1)時的點(diǎn)P(e),也即:
針對三階貝塞爾曲線的定義,可以作出以下輔助點(diǎn)和輔助線;
根據(jù)貝塞爾曲線的特性,可以知道線段AB是貝塞爾曲線在A點(diǎn)的切線段,線段IJ是貝塞爾曲線在E點(diǎn)的切線,線段CD是貝塞爾曲線在D點(diǎn)的切線。
其中F、G、H、I、J是與貝塞爾曲線相關(guān)的輔助點(diǎn),根據(jù)三階貝塞爾曲線的規(guī)則,坐標(biāo)可以定義如下:
另外,E也可以通過I和J來定義,如果進(jìn)行推算,那么結(jié)果和P(e)也是一致的:
經(jīng)過觀察,感覺A、F、I和E很像是曲線AE的貝塞爾曲線控制點(diǎn)的樣子,下面就針對這個猜想進(jìn)行驗(yàn)證:
假設(shè)A、F、I和E就是曲線AE的貝塞爾曲線的控制點(diǎn),那么以u為參數(shù)變量的三階貝塞爾曲線方程可以表達(dá)如下:
代入F、I和E的坐標(biāo)公式,則Q(u)可以轉(zhuǎn)換為如下形式:
經(jīng)過化簡和整理可得:
以自變量t代替ue,則可以定義如下函數(shù):
而曲線AE就是三階貝塞爾曲線參數(shù)方程P(t)定義在t=[0, e]的部分,也即:
R(t)和PAE(t)的定義域和函數(shù)方程完全相同,所以可以得知Q(u)就是曲線AE的參數(shù)方程,也即A、F、I和E是曲線AE的三階貝塞爾曲線的控制點(diǎn),從而可以驗(yàn)證前面的猜想。
對于曲線ED部分,也可以采用相同方式進(jìn)行證明,這里不再贅述。
從而,控制點(diǎn)ABCD描述的三階貝塞爾曲線,可以被分解為控制點(diǎn)AFIE描述的貝塞爾曲線和控制點(diǎn)EJHD描述的貝塞爾曲線。
也即,對于三階貝塞爾參數(shù)曲線方程P(t)而言,對于任意0<e<1,均可以將該曲線從P(e)處斷開成兩個三階貝塞爾曲線。
感謝Grapher和GeoGebra軟件,使得方便排版文章中使用的公式和曲線。