當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]一、原理:???????貝塞爾曲線于1962年,由法國工程師皮埃爾·貝塞爾(Pierre Bézier)所廣泛發(fā)表,他運(yùn)用貝塞爾曲線來為汽車的主體進(jìn)行設(shè)計。貝塞爾曲線最初由?Paul de Cas

一、原理:

???????貝塞爾曲線于1962年,由法國工程師皮埃爾·貝塞爾(Pierre Bézier)所廣泛發(fā)表,他運(yùn)用貝塞爾曲線來為汽車的主體進(jìn)行設(shè)計。貝塞爾曲線最初由?Paul de Casteljau?于1959年運(yùn)用?de Casteljau 算法開發(fā),以穩(wěn)定數(shù)值的方法求出貝塞爾曲線。

線性貝塞爾曲線

給定點(diǎn)?P0、P1,線性貝塞爾曲線只是一條兩點(diǎn)之間的直線。這條線由下式給出:

且其等同于線性插值。


二次方貝塞爾曲線的路徑由給定點(diǎn)?P0、P1、P2?的函數(shù)?B(t) 追蹤:

。

TrueType?字型就運(yùn)用了以貝塞爾樣條組成的二次貝塞爾曲線。


P0、P1、P2、P3?四個點(diǎn)在平面或在三維空間中定義了三次方貝塞爾曲線。曲線起始于?P0?走向?P1,并從?P2?的方向來到?P3。一般不會經(jīng)過?P1?或?P2;這兩個點(diǎn)只是在那里提供方向資訊。?P0?和?P1?之間的間距,決定了曲線在轉(zhuǎn)而趨進(jìn)P3?之前,走向?P2?方向的“長度有多長”。

曲線的參數(shù)形式為:

。

現(xiàn)代的成象系統(tǒng),如?PostScript、Asymptote?和?Metafont,運(yùn)用了以貝塞爾樣條組成的三次貝塞爾曲線,用來描繪曲線輪廓。

一般化

P0、P1、…、Pn,其貝塞爾曲線即

。

例如?:

。

如上公式可如下遞歸表達(dá): 用??表示由點(diǎn)?P0、P1、…、Pn?所決定的貝塞爾曲線。則

用平常話來說,?階貝塞爾曲線之間的插值。


一些關(guān)于參數(shù)曲線的術(shù)語,有

即多項(xiàng)式

又稱作?n?階的伯恩斯坦基底多項(xiàng)式,定義 00?= 1。

點(diǎn)?Pi?稱作貝塞爾曲線的控制點(diǎn)。多邊形以帶有線的貝塞爾點(diǎn)連接而成,起始于?P0?并以?Pn?終止,稱作貝塞爾多邊形(或控制多邊形)。貝塞爾多邊形的凸包(convex hull)包含有貝塞爾曲線。

線性貝塞爾曲線函數(shù)中的?t?會經(jīng)過由?P0?至P1?的?B(t) 所描述的曲線。例如當(dāng)?t=0.25?時,B(t) 即一條由點(diǎn)?P0?至?P1?路徑的四分之一處。就像由 0 至 1 的連續(xù)?t,B(t) 描述一條由?P0?至?P1?的直線。


為建構(gòu)二次貝塞爾曲線,可以中介點(diǎn)?Q0?和?Q1?作為由 0 至 1 的?t

由?P0?至?P1?的連續(xù)點(diǎn)?Q0,描述一條線性貝塞爾曲線。由?P1?至?P2?的連續(xù)點(diǎn)?Q1,描述一條線性貝塞爾曲線。由?Q0?至?Q1?的連續(xù)點(diǎn)?B(t),描述一條二次貝塞爾曲線。?

?? ? ?


為建構(gòu)高階曲線,便需要相應(yīng)更多的中介點(diǎn)。對于三次曲線,可由線性貝塞爾曲線描述的中介點(diǎn)?Q0、Q1、Q2,和由二次曲線描述的點(diǎn)?R0、R1?所建構(gòu):

?? ? ?

對于四次曲線,可由線性貝塞爾曲線描述的中介點(diǎn)?Q0、Q1、Q2、Q3,由二次貝塞爾曲線描述的點(diǎn)?R0、R1、R2,和由三次貝塞爾曲線描述的點(diǎn)?S0、S1?所建構(gòu):

?? ? ?

P(t)=(1-t)P0+tP1?,?。
矩陣表示為:
  ,?。
P(t)=(1-t)2P0+2t(1-t)P1+t2P2,?。
矩陣表示為:
  ,?。


  P(t)=(1-t)3P0+3t(1-t)2P1+3t2(1-t)P2+t3P3?
矩陣表示為:
,?。
(6-3-2)?
,?。?
在(6-3-2)式中,Mn+1是一個n+1階矩陣,稱為n次Bezier矩陣。
?(6-3-3)
。
其中,

利用(6-3-3)式,我們可以得到任意次Bezier矩陣的顯式表示,例如4次和5次Bezier矩陣為:
,
?
可以證明,n次Bezier矩陣還可以表示為遞推的形式:
?(6-3-4)
?

二、算法(c++)

工程目錄是:Win32App?
vc6.0

#include

??HDC hdc;
??static POINT pt[NUM];
??TEXTMETRIC tm;
??static int cxClient,cyClient;
??HPEN hpen;
??int i,j,k,n,t;

??switch(message)
??{
??case WM_CREATE:
??????static int cxchar;
??????hdc = GetDC(hwnd);
??????GetTextMetrics(hdc,&tm);
??????cxchar = tm.tmAveCharWidth;
??????ReleaseDC(hwnd,hdc);

??case WM_SIZE:
???????cxClient = LOWORD(lparam);
??????cyClient = HIWORD(lparam);
??????return 0;
??case WM_PAINT:
???????hdc = GetDC(hwnd);
???????srand(time(0));

???????Rectangle(hdc,0,0,cxClient,cyClient);
??????for(i=0; i<500; i++)
??????????{
????????????SelectObject(hdc,GetStockObject(WHITE_PEN));
????????????PolyBezier(hdc,pt,NUM);
????????????for(j=0; j<NUM; j++)
????????????{
????????????????pt[j].x = rand()%cxClient;
????????????????pt[j].y = rand()%cyClient;
????????????}
????????????hpen = CreatePen(PS_INSIDEFRAME,3,RGB(rand()%256,rand()%256,rand()%256));
?????????????DeleteObject(SelectObject(hdc,hpen));
????????????PolyBezier(hdc,pt,NUM);
????????????for(k=0; k<50000000;k++);
??????????}
??????for(i=0; i<100;i++)
??????{
????????Ellipse(hdc,rand()%cxClient,rand()%cyClient,rand()%cxClient,rand()%cyClient);

????????Pie(hdc,j=rand()%cxClient,k=rand()%cyClient,n=rand()%cxClient,t=rand()%cyClient,rand()%cxClient,rand()%cyClient,rand()%cxClient,rand()%cyClient) ;?

??????}
???????if((n=(n+j)/2)>cxchar*20) n=cxchar*20;??
????????SetTextColor(hdc,RGB(rand()%256,rand()%256,rand()%256));
????????TextOut(hdc,n/2,(t+k)/2,TEXT("瑾以此向Pierm Bezier致敬!"),lstrlen(TEXT("瑾以此向Pierm Bezier致敬!")));
????????ReleaseDC(hwnd,hdc);
??????????DeleteObject(hpen);
??????????ValidateRect(hwnd,NULL);
???return 0;

??case WM_DESTROY:
??????PostQuitMessage(0);
??????return 0;
??}
??return DefWindowProc(hwnd,message,wparam,lparam);
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉