版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
曲線和曲面1可編輯課件目錄曲線曲面概述曲線、曲面參數(shù)表示的基礎知識曲線構造方法三次樣條參數(shù)曲線Beizer曲線B樣條曲線2可編輯課件曲線曲面概述圖形學中一個很復雜的又非常重要的研究領域。曲線曲面才是造型的真正統(tǒng)治者,它占據(jù)了我們生活和幻想中的造型的絕大部分。但曲線曲面又是如此地難以理解,讓人們在一段很長很長的時間內無法征服它。3可編輯課件4可編輯課件曲線曲面概述自由曲線和曲面發(fā)展過程自由曲線曲面的最早是出現(xiàn)在工作車間,為了獲得特殊的曲線,人們用一根富有彈性的細木條或塑料條(叫做樣條),用壓鐵在幾個特殊的點(控制點)壓住樣條,樣條通過這幾個點并且承受壓力后就變形為一條曲線。人們調整不斷調整控制點,使樣條達到符合設計要求的形狀,則沿樣條繪制曲線。1963年,美國波音,弗格森提出使用參數(shù)三次方程來構造曲面1964-1967年,美國MIT,孔斯用封閉曲線的四條邊界來定義曲面1971年,法國雷諾汽車,Bezier提出用控制多邊形來定義曲線和曲面1974年,美國通用汽車,戈登和里森菲爾德,B樣條理論用于形狀描述1975年,美國錫拉丘茲大學,佛斯普里爾提出有理B樣條80年代,皮格爾和蒂勒,將有理B樣條發(fā)展成非均勻有理B樣條,NURBS方法5可編輯課件目錄曲線曲面概述曲線、曲面參數(shù)表示的基礎知識曲線構造方法三次參數(shù)曲線Beizer曲線B樣條曲線6可編輯課件顯式、隱式和參數(shù)表示曲線和曲面都有非參數(shù)表示和參數(shù)表示之分在非參數(shù)中又分為顯式和隱式表示(1)顯式一般形式:y=f(x)注:x與y一一對應,顯示方程不能表示封閉和多值曲線。(2)隱式一般形式:f(x,y)
=
0注:易判斷某給定點是在曲線上還是曲線某一側。7可編輯課件非參數(shù)表示形式(顯示和隱式)存在如下問題:與坐標有關出現(xiàn)斜率為無窮大的特殊情形對于非平面曲線,曲面,難于用常系數(shù)的非參數(shù)化函數(shù)表示不便于計算機處理8可編輯課件參數(shù)表示形式優(yōu)點:滿足幾何不變性要求更多自由度參數(shù)控制曲線與曲面形狀例:二維三次曲線顯示表示:二維三次曲線參數(shù)表示:(3)參數(shù)一般形式:P(t)=[x(t),y(t)]注:曲線上任意一點都可表示為給定參數(shù)t的函數(shù)。9可編輯課件
最簡單的參數(shù)曲線是直線段,端點為P1、P2的直線段參數(shù)方程可表示為:P(t)=P1+(P2-P1)tt∈[0,1];
圓在計算機圖形學中應用十分廣泛,其在第一象限內的單位圓弧的非參數(shù)顯式表示為:其參數(shù)形式可表示為:10可編輯課件(4)便于處理斜率為無限大的問題,不會因此而中斷計算。
(6)規(guī)格化的參數(shù)變量t∈[0,1],使其相應的幾何分量是有界的,而不必用另外的參數(shù)去定義其邊界。
(5)參數(shù)方程中,代數(shù)、幾何相關和無關的變量是完全分離的,而且對變量個數(shù)不限,從而便于用戶把低維空間中的曲線擴展到高維空間去。(7)易于用矢量和矩陣表示幾何分量,簡化了計算?;谶@些優(yōu)點,我們在以后將用參數(shù)表達式來討論曲線問題。(3)對非參數(shù)表示的曲線和曲面進行變化時,必須對所有點進行變化;對參數(shù)表示的曲線和曲面則可直接對參數(shù)方程變化。11可編輯課件5.1.2參數(shù)樣條曲線和曲面的常用術語
在工程設計中,一般多采用低次的參數(shù)樣條曲線。這是因為高次參數(shù)樣條曲線計算費時,其數(shù)學模型難于建立且性能不穩(wěn)定,即任何一點的幾何信息的變化都有可能引起曲線形狀復雜的變化。
因此,實際工作中常采用二次或三次參數(shù)樣條曲線,如:二次參數(shù)樣條曲線:P(t)=A0
+A1t+A2t2三次參數(shù)樣條曲線:
P(t)=A0
+A1t+A2t2
+A3t3
12可編輯課件參數(shù)曲線相關術語用參數(shù)表示的3維曲線是一個有界的點集,可以寫成一個帶參數(shù)的、連續(xù)的、單值的數(shù)學函數(shù),形式為:x=x(t),y=y(t),z=z(t)t[0,1]位置矢量:曲線上任意一點的位置矢量(即坐標),可以用矢量p(t)表示,p(t)=[x(t),y(t),z(t)]為什么選參數(shù)t呢,物理上可以把3維空間的曲線理解為一個動點的軌跡,表示位置矢量p隨時間變化那么,它的一階,二階,K階(如果存在)導數(shù)分別為13可編輯課件參數(shù)曲線相關術語切矢量曲線上R,Q兩點參數(shù)分別是t和t+△t.當Q趨向R,也就是△t→0導數(shù)的方向P’(t)就代表了R點的切線方向導數(shù)的大小就可以近似表示△P的長度也可以近似表示這一段弧長△S14可編輯課件切矢量如果選擇弧長S作為參數(shù),則是單位矢量15可編輯課件參數(shù)曲線相關術語弧長當n→∞,可以把弧長表示為無數(shù)段p0p1,p1p2….的長度組成而當p0與p1的△t→0時,p0p1可以近似的表示為于是從0到t的弧長可以表示為:16可編輯課件參數(shù)曲線基礎參數(shù)曲線相關術語法矢量對于空間參數(shù)曲線上的任意一點,所有垂直切矢量T的矢量有一束,且位于同一平面上,該平面稱為法平面。17可編輯課件T(切矢)、N(主法矢)和B(副法矢)矢量積是第三個單位矢量,它垂直于單位矢量和單位矢量。經該點與矢量平等的法矢量稱為曲線在該點的副法矢量,矢量稱為單位副法矢量。(從切面)18可編輯課件5.1參數(shù)曲線基礎參數(shù)曲線相關術語 曲率和曲率半徑:曲率幾何意義是曲線的單位切矢對弧長的轉動率,即P(s)到P(s+ds)這段弧的彎曲程度。19可編輯課件參數(shù)曲線基礎參數(shù)曲線相關術語撓率:等于副法線方向(或密切平面)對于弧長的轉動率,反應了曲線的扭繞特性。平面曲線中密切平面是曲線所在平面,所以副法矢固定不變,所以繞率總是=0,非平面曲線副法矢變化了,會對曲線產生扭動的效果。T(切矢)、N(主法矢)和B(副法矢)20可編輯課件曲線構造方法插值法給定一組有序的數(shù)據(jù)點Pi,i=0,1,…,n,構造一條曲線順序通過這些數(shù)據(jù)點,稱為對這些數(shù)據(jù)點進行插值,所構造的曲線稱為插值曲線。逼近法構造一條曲線使之在某種意義下最接近給定的數(shù)據(jù)點(但未必通過這些點),稱為對這些數(shù)據(jù)點進行逼近,所構造的曲線稱為逼近曲線。插值和逼近統(tǒng)稱為擬合。21可編輯課件曲線構造方法在前面的插值法中,如果給定的點(型值點)太多,很難構造插值函數(shù),因此可適當放棄一些型值點。型值點:是用于確定曲線和曲面的位置與形狀,且相應曲線或曲面一定經過的點。控制點:是用于確定曲線和曲面的位置與形狀,但相應曲線或曲面不一定經過。插值點:是在型值點或控制點值之間插入的一系列點。22可編輯課件曲線構造方法插值法線性插值:假設給定函數(shù)f(x)在兩個不同點x1和x2的值,用線形函數(shù)y=ax+b,近似代替f(x),稱為的線性插值函數(shù)。23可編輯課件插值法拋物線插值(二次插值):已知在三個互異點x1,x2,x3的函數(shù)值為y1,y2,y3,要求構造函數(shù)¢
(x)=ax2+bx+c,使得¢(x)在xi處與f(x)在xi處的值相等。24可編輯課件曲線構造方法光順:曲線拐點不能太多。對平面曲線來講,相對光順的條件是:具有二階幾何連續(xù)性不存在多余的拐點和奇異點曲率變化較小25可編輯課件參數(shù)連續(xù)性零階參數(shù)連續(xù)性,記作C0,指相鄰兩個曲線段在交點處具有相同的坐標。如圖所示。26可編輯課件一階參數(shù)連續(xù)性,記作C1,指相鄰兩個曲線段在交點處具有相同的一階導數(shù)。如圖所示。27可編輯課件二階參數(shù)連續(xù)性,記作C2,指相鄰兩個曲線段在交點處具有相同的一階和二階導數(shù)。如圖所示。28可編輯課件目錄曲線曲面概述參數(shù)曲線基礎曲線構造方法二次插值樣條曲線三次樣條參數(shù)曲線(Hermite,Cardinal樣條曲線)Beizer曲線B樣條曲線29可編輯課件二次插值樣條曲線
二次插值樣條曲線的數(shù)學表達式在擬合生成樣條曲線的眾多方法中,我們首先選擇較為簡單的二次樣條曲線即拋物樣條曲線的生成方法作為基本方法,來討論如何用插值方法生成通過給定離散型值點的樣條曲線。
由于離散點的要求,我們首先要解決由給定點定義拋物線問題。設有不在同一直線上的三點:P1,P2,P3,現(xiàn)在要求通過該給定的三點定義一條拋物線。如圖所示。30可編輯課件P1P2P3圖過三點的二次曲線
假如我們采用矢量表達式來表示參數(shù)化的二次曲線,那么可以把拋物線的表達式寫成如下的一般形式為:
P(t)=A1
+A2t+A3t2
(0
≤t≤1)
(6-1)拋物線是一條二次曲線,所以表達式中參數(shù)t的最高次數(shù)為2,同時讓參數(shù)t在0—l之間取值。
這就是說,只要確定了式(6–1)中的三個系數(shù):A1,A2和A3,那么就確定了拋物線的表達式,隨之拋物線的曲線圖形也就可以確定。所以,我們的工作是要通過設定一些已知條件來求出這三個系數(shù)。
31可編輯課件要確定這三個系數(shù)(目前尚為未知數(shù)),必須要有三個獨立的條件。我們可以給定這三個獨立條件為:
該拋物線過P1,P2,P3三個點,并且:①拋物線段以P1點為始點。即當參變量t=0時,曲線過P1點;②拋物線段以P3點為終點。即當參變量t=1時,曲線過P3點;③當參變量t=0.5時,曲線過P2點。在這三個設定的條件下,構造的拋物線段如圖6.3所示。
P1P2P3QAP2’t=0t=0.5t=1圖6.3過3點定義的二次曲線32可編輯課件圖中的數(shù)據(jù)是這樣的:A點為P1P3的中點,AP2=P2Q,拋物線在P1點處與P1Q相切,在P3點處與QP3相切,曲線在P2點處的切矢P'2與P1P3平行。
根據(jù)以上設定的條件,可以列出三個方程:
t=
0:P(0)=A1
=P1t=
1:P(1)=A1+A2十A3
=P3(6-2)
t=
0.5;P(0.5)=A1+0.5A2+0.25A3
=P2解以上三個聯(lián)立方程:
A1
=P1P3
=A1
+A2
+A3
=P1+A2
+A3
∴A2
=P3–P1–A3P2
=A1
+
0.5A2
+
0.25A3
33可編輯課件亦即:4P2
=
4A1
+
2A2
+A3
=
4P1
+
2(P3–P1–A3)
+A3
=
2P1
+
2P3
–A3∴A3
=
2P1
+
2P3–4P2以上式回代到A2
=P3–P1–A3中,得:
A2
=
4P2–P3–3P1
所以,通過解聯(lián)立方程,得到的三個系數(shù)A1,A2,A3分別為:
A1
=P1A2
=
4P2–P3–3P1(6-3)A3
=
2P1+2P3–4P2把求出的該三個系數(shù)的值,代入到拋物線的表達式(6-1)中,可得:
34可編輯課件P(t)=A1
+A2t+A3t2
=P1
+(4P2–P3–3P1)t+
(2P1+2P3–4P2)t2
=
(2t2–3t+
1)P1
+(4t–4t2)P2
+
(2t2–t)P3(6-4)
(0≤t≤1)
可把式(6-4)改寫成矩陣形式為:P(t)=[t2
t1](6-5)以上推導求出的算式,即為我們所要求的過不在一直線上的三點:P1(x1,y1),P2(x2,y2)和P3(x3,y3)的拋物線方程。這時根據(jù)參變量t的取值,我們就可以一一計算出位于曲線上的數(shù)據(jù)點,然后順次連線繪出圖形。
35可編輯課件二次插值樣條曲線的加權合成
設有一離散型值點列Pi(i=1,2,…,n),我們可以按式(6-5)每經過相鄰三點作一段拋物線,由于有n個型值點,所以像這樣的拋物線段一共可以作出n–2條。如圖6.4所示。
P1P2P3P4P5Pn-2Pn-1Pn圖6.4產生n–2段拋物線36可編輯課件在這n–2條拋物線段中,第i條拋物線段為經過Pi,Pi+1,Pi+2三點,所以它的表達式應為:
Si(ti)=(2ti2–3ti+1)Pi+(4ti–4ti2)Pi+1+(2ti2–ti)Pi+2
(0≤ti≤1)
(6-7)同理,第i+1條拋物線段為經Pi+1,Pi+2和Pi+3三點,所以它的表達式為:Si+1(ti+1)=(2ti+12–3ti+1+1)Pi+1+(4ti+1–4ti+12)Pi+2+(2ti+12–ti+1)Pi+3
(0≤ti+1≤1)(6-8)
經過四點所畫出的兩條拋物線段Si(ti)和Si+1(ti+1)的圖形如圖6.5所示:
PiPi+1Pi+2Pi+3SiSi+1圖6.5Si和Si+1
37可編輯課件一般說來,每兩段曲線之間的搭接區(qū)間,兩條拋物線是不可能重合的。例如圖6.5中,
Si和Si+1兩條拋物線,它們在Pi+1和Pi+2兩點之間為搭接區(qū)間,在這區(qū)間內,Si和si+1不太有可能會自然地重合成一條曲線。
顯然,對于擬合曲線來說,整個型值點列必須只能用一條光滑的曲線連接起來。為了做到這一點,在Si和si+1這樣兩條曲線的共同區(qū)間內,必須有一個辦法讓它們按照一個一定的法則結合成一條曲線,這結合的辦法就是加權合成。
在加權合成的過程中,我們首先要選擇兩個合適的權函數(shù)。如果我們在這里選擇的兩個權函數(shù)分別為f(T)和g(T),加權合成后的曲線為Pi+1(t),則:
Pi+1(t)
=f(T)·Si(ti)+g(T)·Si+1(ti+1)38可編輯課件在拋物樣條曲線中,我們選擇的權函數(shù)f(T)和g(T)是簡單的一次函數(shù),且它們之間存在有互補性。它們分別為:
f(T)=l–T
g(T)=T(O≤T≤1)這樣,式:
Pi+1(t)=f(T)·Si(ti)+g(T)·Si+1(ti+1)即可改寫為:
Pi+1(t)=(1–T)·Si(ti)+
T·Si+1(ti+1)(6-9)在表達式(6-9)中,包含了三個參變量,即:T、ti和ti+1。假如這三個參變量不加以統(tǒng)一,則接下去的工作是無法進行的,所以我們首先要統(tǒng)一式中的參變量。
39可編輯課件對于曲線段Si(ti),參變量ti的取值范圍為:0≤ti≤1,但曲線段Si(ti)與曲線段Si+1(ti+1)搭接的部分是原曲線段的后半截,即是從點Pi+1到Pi+2之間的區(qū)間,在這個區(qū)間內,參變量的取值范圍應為:0.5≤ti≤1。
同理,對于曲線段Si+1(ti+1),在點Pi+1到Pi+2之間的區(qū)間內,其參變量ti+1的取值范圍應為:0≤ti+1≤0.5。在權函數(shù)f(T)和g(T)中,變量T的取值范圍定為:0≤T≤1。
為了統(tǒng)一式(6-9)中的三個參變量:T、ti和ti+1,我們選擇t作為統(tǒng)一后的參變量,把原有的三個參變量T、ti和ti+1均化成唯一含有t的形式,并要給t規(guī)定一個合適的取值范圍。假如我們使t的取值范圍為:0≤t≤0.5,則上面的三個參變量可統(tǒng)一形式為:
PiPi+1Pi+2Pi+3SiSi+140可編輯課件
T=2t
ti=0.5+t0≤t≤0.5
ti+1=t于是,原式(6-9)可根據(jù)新的參變量t改寫成如下這樣的形式:
Pi+1(t)=(1–2t)·Si(t+0.5)+2t·Si+1(t)(6-10)其中:1–2t=f(T)2t=g(T)
Si(t+0.5)=(2t2–t)Pi+(1–4t2)Pi+1+(2t2+t)Pi+2
Si+1(t)=(2t2–3t+1)Pi+1+(4t–4t2)Pi+2+(2t2–t)Pi+3
41可編輯課件把以上四式代入式(6-10),展開、整理后可得:
Pi+1(t)=(–4t3+4t2–t)Pi+(13t3–10t2+1)Pi+1
+(–12t3+8t2+t)Pi+2+(4t3–2t2)Pi+3(i=1,2,…,
n–3)(0≤t≤0.5)
(6-11)
式(6-11)的實質是:表達了每相鄰的四個點可以決定中間的一段拋物樣條曲線。見圖6.6所示。
PiPi+1Pi+2Pi+3Pi+1(t)圖6.64個點決定中間的一段樣條曲線
假如一個離散點列Pi具有n個型值點,即i=1,2,…,n。那么根據(jù)式(6-11),可以加權合成后生成n–3段拋物樣條曲線。即式(6-11)中的i的取值范圍為:i=1~n–3。
42可編輯課件目錄曲線曲面概述參數(shù)曲線基礎曲線構造方法二次插值樣條曲線三次樣條參數(shù)曲線(Hermite樣條曲線)Beizer曲線B樣條曲線43可編輯課件三次參數(shù)樣條曲線三次參數(shù)曲線的代數(shù)和幾何形式(294)代數(shù)形式我們以最常見的三次參數(shù)曲線為例,討論參數(shù)曲線的代數(shù)和幾何形式。下面為一般的三次參數(shù)曲線的代數(shù)形式:從a3x到a0x有12個系數(shù)為代數(shù)系數(shù),它們確定了這條參數(shù)曲線的形狀和位置。系數(shù)不同則曲線不同。把它改寫為矢量表達:44可編輯課件三次參數(shù)樣條曲線三次參數(shù)曲線的代數(shù)和幾何形式代數(shù)形式把前面的代數(shù)方程改寫為矢量形式P(t)表示曲線上任一點的位置矢量;系數(shù)a0表示(a0x,a0y,a0z)我們嘗試用已知條件來求解這些系數(shù)。可供選擇的已知條件有:端點坐標、端點坐標的切矢量、法矢量、曲率、撓率等等。對于上面的三次參數(shù)曲線,我們使用4個已知條件即可:P(0),P(1),P’(0),P’(1)45可編輯課件三次參數(shù)樣條曲線三次參數(shù)樣條Hermite曲線的代數(shù)和幾何形式幾何形式對三次參數(shù)樣條曲線,若用其端點位矢P(0)、P(1)和切矢P¢(0)、P¢(1)描述。將P(0)、P(1)、P¢(0)和P¢(1)簡記為P0、P1、P¢0和P¢1,代入46可編輯課件三次參數(shù)樣條曲線47可編輯課件三次參數(shù)樣條曲線令稱為Hermite矩陣,插值樣條參數(shù)方程可以寫成:48可編輯課件三次參數(shù)樣條曲線上式展開其中,上式稱為Hermite樣條調和函數(shù),因為它們調和了邊界約束值,使在整個參數(shù)范圍內產生曲線的坐標值。調和函數(shù)僅與參數(shù)t有關,而與初始條件無關。49可編輯課件三次參數(shù)樣條曲線
50可編輯課件三次參數(shù)樣條曲線例:給定9個型值點,其中起始點和終止點是同一個點,從而其特征多邊形是一個首尾相接的封閉多邊形,具體坐標位置如下:(100,300),(120,200),(220,200),(270,100),(370,100),(420,200),(420,300),(220,280),(100,300)假定各點處的一階導數(shù)數(shù)值如下:(70,-70),(70,-70),(70,-70),(70,-70),(70,70),(70,70),(-70,70),(-70,70),(70,-70)用Hermite插值方法繪制曲線。解:p0=(100,300)p1=(120,200)p0’=(70,-70)p1’=(70,-70)For(t=0;t<=1;t=t+0.1)或For(t=0;t<=1;t=t+0.01)或51可編輯課件Hermite樣條曲線比較簡單,易于理解,但要求確定每個型值點處的一階導數(shù)作為初始條件,這是很不方便的,有時甚至是難于實現(xiàn)的。三次參數(shù)樣條曲線52可編輯課件習題6.1參照Hermite三次曲線的幾何形式,試用B[P0P1P’0P’1P’’0P’’1]T,推導相應五次曲線的調和函數(shù)和系數(shù)矩陣M
53可編輯課件習題講解解:設Hermite五次曲線的幾何形式為:P(t)=a5t5+a4t4+a3t3+a2t2+a1t+a0其中t∈[0,1]
按題意,已知曲線兩端點的坐標值P0P1
曲線兩端點的一階導數(shù)值P’0P’1曲線兩端點的二階導數(shù)值P’’0P’’1則求出系數(shù)a5,a4,a3,a2,a1,a0則P(t)就可確定;由于P(t)=a5t5+a4t4+a3t3+a2t2+a1t+a0,其中t∈[0,1]
54可編輯課件
P’(t)=5a5t4+4a4t3+3a3t2+2a2t+a1P”(t)=20a5t3+12a4t2+6a3t+2a2
P0=P(0)=a0
P1=P(1)=a5+a4+a3+a2+a1+a0P0’=P’(0)=a1P1’=P’(1)=5a5+4a4+3a3+2a2+a1P0”=P”(0)=2a2P1”=P”(1)=20a5+12a4+6a3+2a2
55可編輯課件所以a0=P(0)a1=P’(0)a2=P”(0)/2a3=10P(1)-10P(0)-4P’(1)-6P’(0)+P”(1)/2-3P”(0)/2a4=-15P(1)+15P(0)+7P’(1)+8P’(0)-P”(1)-3P”(0)/2a5=6P(1)-6P(0)-3P’(1)-3P’(0)-P”(0)/2+P”(1)/2
=>P(t)=[-6P(0)+6P(1)-3P’(0)-3P’(1)-P”(0)/2+P”(1)/2]t5+[+15P(0)-15P(1)+8P’(0)+7P’(1)+3P”(0)/2]t4+[-10P(0)+10P(1)-6P’(0)-4P’(1)-3P”(0)/2+P”(1)/2]t3+[P”(0)/2]t2+[P’(0)]t+P(0)
56可編輯課件整理得:
P(t)=(-6t5+15t4-10t3+1)P(0)+(6t5-15t4+10t3)P(1)+(-3t5+8t4-6t3+t)P’(0)+(-3t5+7t4-4t3)P’(1)+(-t5/2+3t4/2-3t3/2+t2/2)P”(0)+(t5/2-t4+t3/2)P”(1)
故調和函數(shù)為:
F(0)=-6t5+15t4-10t3+1F(1)=6t5-15t4+10t3
F(2)=-3t5+8t4-6t3+tF(3)=-3t5+7t4-4t3F(4)=-t5/2+3t4/2-3t3/2+t2/2F(5)=t5/2-t4+t3/257可編輯課件系數(shù)矩陣為:-6 6 -3 -3 -1/2 1/215 -15 8 7 3/2 -1-10 10 -6 -4 -3/2 1/20 0 0 0 1/2 000 10 0 01 0 0 0 0 0 58可編輯課件習題2試求兩段三次Hermite曲線達C1連續(xù)的條件解:兩段三次Hermite曲線分別為:Q1(t1)=a3t13+a2t12+a1t1+a0t1∈[01]Q2(t2)=b3t23+b2t22+b1t2+b0t2∈[01]依據(jù)C1連續(xù)充要條件為:Q1(1)和Q2(0)在P點處重合,且其在P點處的切矢量方向相同,大小相等
59可編輯課件即Q1(1)=Q2(0),Q1’(1)=Q2’(0),Q1”(1)=Q2”(0)而Q1(1)=a3+a2+a1+a0
Q2(0)=b0Q1’(t1)=3a3t12+2a2t1+a1Q2’(t2)=3b3t22+2b2t2+b1
則:Q1’(1)=3a3+2a2+a1Q2’(0)=b1Q1”(t1)=6a3t1+2a2
Q2”(t2)=6b3t2+2b2Q1”(1)=6a3+2a2
Q2”(0)=2b2
60可編輯課件=>兩段三次Hermite曲線:Q1(t1)=a3t13+a2t12+a1t1+a0t1∈[01]Q2(t2)=b3t23+b2t22+b1t2+b0t2∈[01]要達到C1連續(xù),其系數(shù)必須滿足下列關系式:a3+a2+a1+a0=b03a3+2a2+a1=b16a3+2a2=2b261可編輯課件6.2Bezier
曲線
前面討論過的三次參數(shù)樣條曲線通過給定的型值點,屬于樣條插值曲線,適合于已知曲線上的某些點而生成曲線的情形。但在外形設計時,初時給出的型值點有時并不精確,由給定的型值點生成的樣條曲線并不能滿足性能或美觀的要求,需要加以修改。但多數(shù)插值樣條曲線作為外形設計工具不能直觀地表示出應該如何控制和修改曲線的形狀,缺少靈活性和直觀性。法國雷諾汽車公司工程師P.E.Bezier在1962年提出了一種新的參數(shù)曲線表示方法,稱為Bezier曲線。這種方法的特點是所輸入型值點與生成曲線之間的關系明確,能比較方便地通過修改輸入?yún)?shù)來改變曲線的形狀和階次。62可編輯課件63可編輯課件在該多邊折線的各頂點中,只有第一點和最后一點是在曲線上的,其余的頂點則用來定義曲線的導數(shù)、階次和形狀。第一條邊和最后一條邊則表示出了曲線在起點處和終點處的切線方向,即第一條邊和最后一條邊分別和曲線在起點和終點處相切。曲線的形狀趨向于多邊折線的形狀。改變多邊折線的頂點位置和曲線形狀的變化有著直觀的聯(lián)系。下圖列舉了一些Bezier多邊折線和相應的Bezier曲線的形狀關系。
P0P1P2P3P0P1P2P3P0P1P2P3圖Bezier曲線
Bezier曲線是由一組多邊折線定義的,在多邊折線的各頂點中,只有第一點和最后一點在曲線上,第一條和最后一條折線分別表示出曲線在起點和終點處切線方向。曲線的形狀趨向于多邊折線的形狀,因此,多邊折線又稱為特征多邊形,其頂點稱為控制點。64可編輯課件6.2.1Bezier曲線的數(shù)學表達式
1.數(shù)學表達式Bezier曲線次數(shù)嚴格依賴于確定該段曲線的控制點個數(shù),通常由(n﹢1)個頂點定義一個n次多項式,曲線上各點參數(shù)方程式為:在式(6-21)中,Pi為各頂點的位置向量,Bi,n(t)為伯恩斯坦(Bernstein)基函數(shù),該函數(shù)的表達式為:n次多項式曲線P(t)稱為n次Bezier曲線65可編輯課件Bezier曲線及其特征多邊形圖例:66可編輯課件一次Bezier曲線(n=1)二次Bezier曲線(n=2)三次Bezier曲線(n=3)67可編輯課件2.Bezier曲線的性質(1)曲線的起點和終點同特征多邊形的起點和終點重合對Bernstein多項式有:當t﹦0時,只有i﹦0的項不為0,其它項都為ti﹦0i﹦0,因此其中規(guī)定:0!=1,00=1。當t﹦1時,只有i﹦n
的項不為0,其它項為(1-t)n-i﹦0n-i﹦0,因此P(1)=P0B0,n(1)+P1B1,n(1)+P2B2,n(1)+…+PnBn,n(1)從以上結果可以得出,曲線通過多邊折線的起點和終點。68可編輯課件(2)一階導數(shù)對參數(shù)t求導得:于是得:(6-23)在起始點t﹦0,B0,n-1(0)﹦1,其余項均為0,故有:P’(0)﹦n(P1﹣P0)在終止點t﹦1,Bn-1,n-1(1)﹦1,其余項均為0,故有:P’(1)=n(Pn﹣Pn-1)即Bezier曲線在端點處的一階導數(shù)只同相近的兩個控制點有關,其方向相同于兩點的連線方向。69可編輯課件(3)二階導數(shù)對參數(shù)t求二階導數(shù)可得:
在起始點t﹦0處的二階導數(shù)為:P”(0)﹦n(n﹣1)(P2﹣2P1﹢P0)=n(n-1)((P2﹣P1)-(P1-P0))在終止點t﹦1處的二階導數(shù)為:P”(1)﹦n(n﹣1)(Pn﹣2Pn-1﹢Pn-2)=n(n-1)((Pn-2﹣Pn-1)-(Pn-1﹣Pn))結論:Bezier曲線在端點處的二階導數(shù)只同相近的三個控制點有關。那么,Bezier曲線在端點處的r階導數(shù)是由端點和它們r個鄰近的控制多邊形頂點來決定。70可編輯課件(4)凸包性Bezier曲線的另一個重要性質是它落在特征多邊形頂點所形成的凸包內。即在幾何圖形上,當特征多邊形為凸時,Bezier曲線也是凸的;當特征多邊形有凹有凸時,其曲線的凸凹形狀與之對應。Bezier曲線的凸包性質保證了多項式曲線隨控制點平穩(wěn)前進而不會振蕩。(5)幾何不變性由Bezier曲線的數(shù)學定義式知,曲線的形狀由特征多邊形的頂點Pi(i﹦0,1,...,n)唯一確定,與坐標系的選取無關,這就是幾何不變性。(6)對稱性
假設保持n次控制多邊形的頂點位置不變,而把次序顛倒過來,即下標為i的控制點Pi改為下標為n-i的控制點Pn-i,則此時曲線仍不變,只不過曲線的走向相反而已。71可編輯課件6.2.2二次Bezier曲線
頂點P0,P1,P2可定義一條二次(n=2)Bezier曲線。此時式(6-21)可以改寫成:
P(t)=(1–t)2P0+2t(1–t)P1+t2P2
(0≤t≤1)(6-24)寫成矩陣形式為:
P(t)=[t2t1]在式(6-24)中,相對應于式(6-21)中的調和函數(shù)Bi,n(t)分別為:
B0,2(t)=1-2t+t2
B1,2(t)=2t-t2
B2,2(t)=t2
72可編輯課件根據(jù)式(6-24),當n=2時,二次Bezier曲線在起點P0處有切向量P'0=P'(t=0)=2(P1–P0);在終點P2處有切向量P'2=P'(t=1)=2(P2–P1)。同時,當t=1/2時:該式說明,二次Bezier曲線經過△P0P1P2中的一條中線P1Pm的中點P。綜上所述,我們可以看出:二次Bezier曲線是一條拋物線。見下圖所示。
P1P0P2PmP二次Bezier曲線73可編輯課件746.2.3三次Bezier曲線一般地說,可以用任何數(shù)目的控制點擬合出一條Bezier曲線,但這需要計算更高次的多項式。復雜曲線可以由一些較低次數(shù)的Bezier曲線段連接而成,較小的曲線段連接也便于更好地控制小區(qū)域內的曲線形狀,最常使用的是三次Bezier曲線。三次Bezier曲線由四個控制點P0、P1、P2、P3定義:74可編輯課件75展開后的表達式為:P(t)=(-t3﹢3t2﹣3t﹢1)P0+(3t3﹣6t2﹢3t)P1
+(-3t3﹢3t2)P2﹢t3P3
=B0,3(t)P0+B1,3(t)P1+B2,3(t)P2﹢B3,3(t)P3其中B0,3(t)﹦-t3﹢3t2﹣3t﹢1
B1,3(t)﹦3t3﹣6t2﹢3tB2,3(t)﹦-3t3﹢3t2B3,3(t)﹦t3稱為三次Bezier曲線的調和函數(shù),下圖表示出調和函數(shù)的四條曲線。這四條曲線形成了三次Bezier曲線的一組基,任何三次Bezier曲線都是這四條曲線的線性組合。75可編輯課件76三次Bezier曲線的調和函數(shù):76可編輯課件77三次Bezier曲線函數(shù)式用矩陣形式表示為:是三次Bezier系數(shù)矩陣。77可編輯課件78三次Bezier曲線的在端點處的一階導數(shù)為:P’(0)﹦3(P1﹣P0)P’(1)=3(P3﹣P2)二階導數(shù)為:P”(0)﹦6(P2﹣2P1﹢P0)P”(1)﹦6(P3﹣2P2﹢P1)三次Bezier曲線函數(shù)式分別寫成坐標分量的形式如下:x(t)﹦(-t3﹢3t2﹣3t﹢1)x0﹢(3t3﹣6t2﹢3t)x1
﹢(-3t3﹢3t2)x2﹢t3x3y(t)﹦(-t3﹢3t2﹣3t﹢1)y0﹢(3t3﹣6t2﹢3t)y1
﹢(-3t3﹢3t2)y2﹢t3y3z(t)﹦(-t3﹢3t2﹣3t﹢1)z0﹢(3t3﹣6t2﹢3t)z1
﹢(-3t3﹢3t2)z2﹢t3z3
78可編輯課件79實際生成曲線時,按問題的要求取一合適的步長,控制u從0到1變化,求出一系列(x,y)坐標點,將其用小線段順序連接起來,就可以得到一條Bezier曲線。對于二維平面的情況,只有x,y坐標分量,可以給出四點三次Bezier曲線如下的算法描述:beginx=x0y=y0moveto(x,y)fort﹦0to1steptx﹦B0,3(t)x0﹢B1,3(t)x1﹢B2,3(t)x2﹢B3,3(t)x3y﹦B0,3(t)y0﹢B1,3(t)y1﹢B2,3(t)y2﹢B3,3(t)y3lineto(x,y)endforend79可編輯課件80三次Bezier曲線例子:設在平面上給定的7個控制點坐標分別為:(100,300),(120,200),(220,200),(270,100),(370,100),(420,200),(420,300)。畫出其曲線。80可編輯課件816.2.4Bezier曲線的光滑連接復雜曲線可以由一些較低次數(shù)的Bezier曲線段連接而成,工程上通常使用分段三次Bezier曲線來描述。將分段的三次Bezier曲線連接起來構成三次Bezier曲線,其關鍵問題是如何保證連接處具有連續(xù)性。設有兩段三次Bezier曲線,其中一段曲線由控制點P0、P1、P2、P3生成,另一條曲線由控制點Q0、Q1、Q2、Q3生成,P3(Q0)是兩段曲線的公共控制點,如下圖所示。如果兩段曲線要達到光滑連接,需要一階導數(shù)連續(xù),甚至二階導數(shù)連續(xù)。對于一階導數(shù)連續(xù),由前面所推出的公式,第一段曲線終點處的導數(shù)為:P’(1)﹦3(P3﹣P2)第二段曲線起點處的導數(shù)為:Q’(0)﹦3(Q0﹣Q1)81可編輯課件82兩段Bezier曲線光滑連接的條件示意圖一階導數(shù)要連續(xù),則應有P’(1)﹦Q’(0),即:P3﹣P2﹦Q1﹣Q0
也即要求P2P3(Q0)Q1三點共線,而且P3(Q0)為中點,是它們的公切線。82可編輯課件83第一段曲線終點處的二階導數(shù)為:P”(1)﹦6(P3﹣2P2﹢P1)第二段曲線起點處的二階導數(shù)為:Q”(0)﹦6(Q2﹣2Q1﹢Q0)要達到二階導數(shù)連續(xù),則應有P”(1)﹦Q”(0),即:P3﹣2P2﹢P1﹦Q2﹣2Q1﹢Q0Bezier樣條曲線為外形設計提供了靈活直觀的方法,但對(n+1)個控制點,需要n階Bernstein多項式,當n較大時,特征多邊形對曲線控制減弱,曲線修改和使用都不便。如果使用低次多項式分段實現(xiàn),光滑連接所需要的條件要求比較高。另外,如果改變任一個控制點位置,整個曲線都受到影響,缺乏對曲線形狀進行局部修改的靈活性。83可編輯課件6.2.5Bezier曲線生成算法
根據(jù)式(6-21),可以編寫出繪制任意階次的Bezier曲線的繪圖程序。doublepowi(doublev,intk)//計算vk{doubletemp=1.0;if(k==0&&v==0)return1;//00=1else{ for(inti=1;i<=k;i++)temp=temp*v;}returntemp;}84可編輯課件longfac(intm)//計算m!{inti;longtemp=1;if(m==0)return1;//0!=1else{for(i=2;i<=m;i++) temp=temp*i;}returntemp;}85可編輯課件voidbezier(intpx[],intpy[],intn){intx,y,i,j,k=100;doublet,t1,u,v;doubletemp,temp1,temp2,bi;t=1.0/k;moveto(px[0],py[0]);//移動到起始頂點for(j=1;j<k;j++){t1=j*t;u=t1;v=1–u; x=0;y=0;86可編輯課件for(i=0;i<=n;i++){temp=double(fac(n)/fac(i)/fac(n–i));//n!/(i!*(n-i)!)temp1=powi(u,i);//uitemp2=powi(v,n–i);//v(n-i)bi=temp*temp1*temp2;x=x+bi*px[i];y=y+bi*py[i];}LineTo(x,y);}lineto(px[n],py[n]);}87可編輯課件習題3給定四點P1(0,0,0),P2(1,1,1),P3(2,-1,-1),P4(3,0,0),用其作為特征多邊形來構造一條三次Bezier曲線,并計算參數(shù)為0,1/3,2/3,1的值。解:三次Bezier曲線的一般式為:P(t)=(1-t)3P1+3t(1-t)2P2+3t2(1-t)P3+t3P4 t∈[01]其矩陣表達式為
88可編輯課件89可編輯課件然后分別令t=0,1/3,2/3,1計算上述式子即可 當t=0時當t=1/3時,
90可編輯課件當t=2/3時當t=1時
91可編輯課件6.3B樣條曲線上面所介紹的Bezier曲線,在外形設計的應用中,存在有一些具體的不足之處:①確定了多邊形的頂點數(shù)(m個),也就決定了所定義的Bezier曲線的階次(m–1次),這樣很不靈活。②當頂點數(shù)(m)較大時,曲線的階次將比較高。此時,多邊形對曲線形狀的控制將明顯減弱。③從式(6–21)可以看出,調和函數(shù)的值在開區(qū)間(0,1)內均不為零。因此,所定義的曲線在(0<t<1)的區(qū)間內的任何一點均要受到全部頂點的影響。即改變其中任一個頂點的位置,將會對整條曲線產生影響,因而對曲線進行局部修改將成為不可能。92可編輯課件B樣條曲線示例二次B樣條曲線示例93可編輯課件B樣條曲線示例二次B樣條曲線示例94可編輯課件B樣條曲線示例三次B樣條曲線示例95可編輯課件B樣條曲線示例三次B樣條曲線示例96可編輯課件B樣條曲線示例四次B樣條曲線示例97可編輯課件B樣條曲線示例五次B樣條曲線示例98可編輯課件為了克服以上提到的在Bezier曲線中存在的一些問題,Gordon,Riesenfeld和Forrest等人拓展了Bezier曲線,用n次B樣條基函數(shù)替換了伯恩斯坦基函數(shù),構造了B樣條曲線。B樣條曲線除了保持了原Bezier曲線所具有的優(yōu)點外,還增加了可以對曲線進行局部修改這一突出的優(yōu)點。除此之外,它還具有對特征多邊形更逼近,多項式階次較低等優(yōu)點。因此,B樣條曲線在外形設計中得到了廣泛的重視和應用。99可編輯課件式中:Pk,n(t)為第k段n次B樣條曲線段(k=0,1,…,n),F(xiàn)i,n(t)為n次B樣條基函數(shù),也稱為B樣條分段混合函數(shù)。其形式為:(6-27)連接全部曲線段所組成的整條曲線稱為n次B樣條曲線。依次用線段連接Pi+k(k=0,1,…,n)所組成的多邊折線稱為B樣條曲線在第i段的B特征多邊形。
n次B樣條曲線可達到n–1階連續(xù)。
B樣條曲線定義形式2:100可編輯課件
連接全部曲線段所組成的整條曲線稱為n次B樣條曲線。依次用線段連接點Pi+k(k=0,1,…,n)所組成的多邊折線稱為B樣條曲線在第i段的B特征多邊形。
101可編輯課件由式(6–26)可以看出,B樣條曲線是分段組成的。所以特征多邊形的頂點對曲線的控制靈活直觀。由于整條B樣條曲線能達到n–1階的連續(xù),而在工程實際應用中,二階連續(xù)的曲線已能使工程問題的解決相當滿意,所以在實際應用中,三次B樣條曲線和二次B樣條曲線應用得較為廣泛。高于三次的B樣條曲線,由于計算過于復雜,且也不一定適合于一般的工程應用,所以用得很少。
6.3.2二次B樣條曲線
對于二次B樣條曲線,n=2,i=0,l,2。所以式(6-27)可以寫成如下形式:102可編輯課件103可編輯課件因此,二次B樣條曲線的分段表達式可以寫成如下的形式:
Pi(t)=F0,2(t)Pi+F1,2(t)Pi+1十F2,2(t)Pi+2
(i=0,1,2,….m)(6-28)綜合起來,二次B樣條曲線還可以寫成更一般化的形式:104可編輯課件(6-29)對P(t)求導.可得:(6-30)105可編輯課件從式(6–28),我們可以總結出二次B樣條曲線在端點處的性質;∵∴
106可編輯課件三個頂點P0P1P2確定一段二次B樣條曲線段,該段曲線是一段拋物線。一般情況下,B樣條曲線不經過控制點,曲線起點只與前二個控制點有關,終點只與后二個控制點有關。
107可編輯課件以上的三對式子說明:二次B樣條曲線段的起點P(0)在B特征多邊形第一條邊的中點處,且其切向量B1–B0即為第一條邊的走向;終點P(1)在B持征多邊形線第二條邊的中點處,且其切向量B2–B1即為第二條邊的走向。而且,P()正是△P(0)B1P(1)的中線B1M的中點,且在P()處的切線平行于。因此,分段二次B樣條曲線是一條拋物線。見圖6.17所示。
B0B1B2P(0)P(1)P’(1/2)P(1/2)M圖6.17二次B樣條曲線
108可編輯課件可見,由n個頂點定義的二次B樣條曲線,實質上是n–2段拋物線(相鄰三點定義)的連接,并在連接處達到一階連續(xù)。
6.3.3三次B樣條曲線
對于三次B樣條曲線,n=3,k=0,1,2,3。所以式(6-27)可以分別寫成如下形式:109可編輯課件=(–t3+3t2–3t+1)=(3t3–6t2+4)110可編輯課件=(–3t3+3t2+3t+1)=t3
111可編輯課件所以,三次B樣條曲線的表達式可以寫成:(6-31)下面,我們來討論一下三次B樣條曲線的端點性質。由式(6-31)可以進一步推導得:112可編輯課件P(t)=[(1–t)3
P0+(3t3–6t2+4)P1+(-3t3+3t2+3t+1)P2+t3P3]P’(t)=[-3(1–t)2
P0+(9t2–12t
)P1+(-9t2+6t+3)P2+3t2P3]P”(t)=[6(1–t)P0+(18t–12
)P1+(-18t+6)P2+6tP3]∵∴以t的端點值代入,得:113可編輯課件從以上列出的端點結果我們可以看到,曲線段的起點P(0)位于△P0P1P2底邊P0P2的中線P1Pm上,且距P1點的三分之一處。該點處的切矢P‘(0)平行于△P0P1P2的底邊P0P2,且長度為其二分之一。該點的二階導數(shù)P’’0)等于中線矢量P1Pm的二倍,見下圖。
P0P1P2P3P4P’(0)P(0)P”(0)P”(1)P(1)P’(1)Pm圖6.3.16三次B樣條曲線段
114可編輯課件同理,對于終點P(1)處的情形與此相應。如果在B特征多邊形上增加了一個頂點P4,那么P1P2P3P4又可定義一段新的三次B樣條曲線。因為新曲線段起點的有關數(shù)據(jù)和上一段曲線的終點的有關數(shù)據(jù)都只和P1、P2、P3三點有關,所以該二段曲線在連接處的位置矢量,一階切矢和二階切矢都應相等,即:
P'1(1)=P'2(0)
P''1(1)=P''2(0)這就證明了,三次B樣條曲線可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年武漢大學廣慈醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 銀行實習報告(集錦15篇)
- 共享樂器:音樂學習的新方式
- 2024年經銷商鋪貨銷售協(xié)議版B版
- 2024年汽車制造電腦設備采購合同
- 數(shù)字經濟視角下企業(yè)財務管理轉型策略研究
- 2019年語文期中考試總結與反思
- 珍愛生命的演講稿范文15篇
- 形容領導講話好的成語
- 曲柄搖桿機構雙曲柄機構與雙搖桿機構
- 活動房結構計算書
- 醫(yī)療器械經營質量管理體系文件(全套)
- 富氫水項目經濟效益及投資價值分析(模板參考)
- 小流域水土保持綜合治理工程初步設計
- 增強熱塑性塑料復合管在我國的發(fā)展現(xiàn)狀
- 機械設計外文文獻翻譯、中英文翻譯、外文翻譯
- 美標漸開線花鍵計算程序2014.8
- 英格索蘭空壓機操作規(guī)程
- 風動送樣手冊
- 績效考核評分標準
- 電力建設施工技術管理
評論
0/150
提交評論