freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vc的平面曲線繪制(編輯修改稿)

2025-06-19 23:17 本頁面
 

【文章內(nèi)容簡介】 開 cpp文件 的現(xiàn)象。 3 貝塞爾 (Bezier)曲線的繪制 貝塞爾曲線的介紹 一般地說,可以用任何數(shù)目的控制點擬合出一條 Bezier曲線,但這需要計算更高次的多項式。復(fù)雜曲線可以由一些較低次數(shù)的 Bezier曲線段連接而成,較小的曲線段連接也便于更好地控制小區(qū)域內(nèi)的曲線形狀,最常使用的是三次 Bezier曲線。 10 三次 Bezier曲線由四個控制點 P0、 P P P3定義: ??? 3 0 3, )()( k kk uBPuP 其中, Pk為特征多邊形第 k個頂點的坐標值 (xk,yk,zk),而基函數(shù) Bk,n(u)的定義如下 knkknuk uuCB ??? )1(, (k﹦ 0,1,...,n) 函數(shù) Bk,n(u)稱為 Bernstein多項式 ,其中 )!(! ! knk nCkn ?? 為組合公式。 u的取值范圍為 [0,1], n是多項式次數(shù) , 也是曲線次數(shù)。 三次 Bezier曲線寫成坐標分量的形式如下: x(u)﹦ (u3﹢ 3u2﹣ 3u﹢ 1)x0﹢ (3u3﹣ 6u2﹢ 3u)x1﹢ (3u3﹢ 3u2)x2﹢ u3x3 y(u)﹦ (u3﹢ 3u2﹣ 3u﹢ 1)y0﹢ (3u3﹣ 6u2﹢ 3u)y1﹢ (3u3﹢ 3u2)y2﹢ u3y3 z(u)﹦ (u3﹢ 3u2﹣ 3u﹢ 1)z0﹢ (3u3﹣ 6u2﹢ 3u)z1﹢ (3u3﹢ 3u2)z2﹢ u3z3 實際生成曲線時,取一合適的步長,控制 u從 0到 1變化,求出一系列 (x, y)坐標點,將其用小線段順序連接起來,就可以得到一條 Bezier曲線。 Bezier曲線的性質(zhì) ( 1)曲線的起點和終點同特征多邊形的起點和終點重合 ( 2) Bezier曲線在端點處的一階導(dǎo)數(shù)只同相近的兩個控制點有關(guān),其方向相同于兩點的連線方向。 ( 3)凸包性 : Bezier曲 線落在特征多邊形頂點所形成的凸包內(nèi)。 ( 4)幾何不變性 : 曲線的形狀由特征多邊形的頂點唯一確定,與坐標系的選取無關(guān)。 三次 Bezier曲線繪制 void CMyView::OnDraw3bezier() { RedrawWindow()。 float coeff_x[4]。 float coeff_y[4]。 float points_x[nPoints+1]。 11 float points_y[nPoints+1]。 int degree,i,j。 degree=3。 CClientDC *pdc=new CClientDC(this)。 CPen pen。 (PS_SOLID,1,RGB(0,0XFF,0))。 CPen *oldpen=(CPen*)pdcSelectObject(amp。pen)。 pdcTextOut(200,150,三次 Bezier曲線 )。 double delt。 coeff_x[0]=10。 coeff_x[1]=30。 coeff_x[2]=40。 coeff_x[3]=40。 coeff_y[0]=10。 coeff_y[1]=5。 coeff_y[2]=13。 coeff_y[3]=30。 pdcMoveTo(110,110)。 for(j=0。j=degree。j++) pdcLineTo(10+10*coeff_x[j],10+10*coeff_y[j])。 delt=float()。 double t=。 pdcMoveTo(110,110)。 for(i=0。i=nPoints。i++){ points_x[i]=ThreeBezier(degree,coeff_x,t)。 points_y[i]=ThreeBezier(degree,coeff_y,t)。 t=t+delt。 pdcLineTo(10+10*points_x[i],10+10*points_y[i])。 } 12 delete pdc。 } 程序運行效果圖: 圖 Bezier曲線 4 三 次 B 樣條曲線的繪制 三 次 B樣條曲線的 介紹 工程上常用的是三次 B樣條曲線函數(shù)式為: ???30 3, )()( k kk uFPuP u?[0, 1] 其 中: ??? ? ?????kjjjk jkuCuF 303133, )3()1(!31)( 展開有: F0,3(u)﹦ (u3﹢ 3u2﹣ 3u﹢ 1 )/6; F1,3(u)﹦ (3u3﹣ 6u2﹢ 4)/6; F2,3(u)﹦ (3u3﹢ 3u2﹢ 3u﹢ 1 )/6; F3,3(u)﹦ u3 /6。 寫成坐標分量的形式如下 : x(u)﹦ (u3/6﹢ u2/2﹣ u/2﹢ 1/6)x0﹢ (u3/2 ﹣ u2﹢ 2/3)x1﹢ (u3/2﹢ u2/2﹢ u/2﹢ 13 1/6)x2﹢ u3x3/6 y(u)﹦ (u3/6﹢ u2/2﹣ u/2﹢ 1/6)y0﹢ (u3/2 ﹣ u2﹢ 2/3)y1﹢ (u3/2﹢ u2/2﹢ u/2﹢1/6)y2﹢ u3y3/6 z(u)﹦ (u3/6﹢ u2/2﹣ u/2﹢ 1/6)z0﹢ (u3/2 ﹣ u2﹢ 2/3)z1﹢ (u3/2﹢ u2/2﹢ u/2﹢1/6)z2﹢ u3z3/6 當 u從 0到 1變化時,曲線將在 P0到 P3之間順序地連續(xù)形成。 三次 B樣條曲線的 性質(zhì) ( 1)嚴格的凸包性:曲線嚴格位于控制多邊形的凸包 內(nèi),如果 u∈ [ ui ,ui+1), p≤ imp1, C(u)位于控制頂點 Pip? .,Pi所建立的凸包內(nèi),如圖 。 圖 ( 2)分段參數(shù)多項式: C(u)在每一個區(qū)間 u∈ [ui,ui+1)上都是次數(shù)不高于 P的多項式。 ( 3) 可微性或連續(xù)性: C(u)在每一個曲線段內(nèi)部是無限次可微的,在定義域內(nèi) 重復(fù)度為 k的節(jié)點處則使 pk次可微或具有 pk階參數(shù)連續(xù)性。 ( 4) 幾何不變性: B樣條曲線 的形狀和位置與坐標系的選取無關(guān)。 ( 5) 局部可調(diào)性:因為 Ni, p(u)只在區(qū)間 [ui ,ui+p+1)中為正,在其它地方均取零值 ,所以 p次的 B樣條曲線在修改時只被相鄰的 p+1個頂點控制,而與其它頂點無關(guān)。當移動其中的一個頂點 p i時,只影響到定義在區(qū)間 [ u i ,ui+p+1)上那部分曲線,并不對整條曲線產(chǎn)生影響。 ( 6) 控制多邊形是 B樣條曲線的線性近似,若進行節(jié)點插入或升階會更加近 似;次數(shù)越低, B樣條曲線越逼近控制頂點 ( 7) 如圖 ,設(shè) P0 , P1,...,Pn為 B樣條曲線的控制多邊形 ,某平面與 B樣條曲線的交點個數(shù)不多于該平面與其控制多邊形的交點個數(shù) 14 圖 三次 B樣條曲線的繪制: 畫出三次 B樣條曲線曲線。 部分源代碼 : void CMyView::OnDraw3bspline() { RedrawWindow()。 CClientDC *pdc=new CClientDC(this)。 CPen pen。 (PS_SOLID,1,RGB(0,0XFF,0))。 CPen *oldpen=(CPen*)pdcSelectObject(amp。pen)。 pdcTextOut(100,50,三次 B樣條曲線 )。 int cx,cy,i,n。 n=9。 double t,t2,t3,a0,a1,a2,a3,b0,b1,b2,b3,dt,xa,ya。 cx=10。 cy= static int x[4]={30,60,120,220},y[4]={30,110,150,50}。 a0=(x[0]+4*x[1]+x[2])/6。 a1=(x[0]x[2])/2。 a2=(x[2]2*x[1]+x[0])/2。 a3=(x[0]3*x[1]+3*x[2]x[3])/6。 b0=(y[0]+4*y[1]+y[2])/6。 b1=(y[0]y[2])/2。 15 b2=(y[2]2*y[1]+y[0])/2。 b3=(y[0]3*y[1]+3*y[2]y[3])/6。 dt=。 for (i=0。i=n。i++){ t=i*dt。 t2=t*t。 t3=t2*t。 xa=a0+a1*t+a2*t2+a3*t3+cx。 ya=cy(b0+b1*t+b2*t2+b3*t3)。 if(i==0) pdcMoveTo(xa,ya)。 else pdcLineTo(xa,ya)。 } pdcDeleteDC()。 // TODO: Add your mand handler code here } 程序運行效果圖 三次貝塞爾去效果圖如圖 所示: 圖 B樣條曲線 5 正葉線 正葉線 正葉線是一種類似植物葉子形狀的曲線,數(shù)學(xué)表達式為: R=asin(ntheta) X=rcos(theta) (a0,n=2,3,4,5,.........) Y=rsin(theta) 可以通過修改上述數(shù)學(xué)表達式,繪制由二重、三重的正葉線組成的美麗圖形。 16 正葉線源碼 及效果圖 void CMyView::OnDrawLeaf() { CClientDC *pdc=new CClientDC(this)。 CPen pen。 (PS_SOLID,1,RGB(0,0XFF,0))。 CPen *oldpen=(CPen*)pdcSelectObject(amp。pen)。 int a,n,cx,cy,gx,gy,flag,k。 double r,p,th,x,y,pi。 a=n=2。 pi=。 cx=320。 cy=240。 flag=0。k=200。 for(p=1。p=。p=){ for(th=0。th=2*pi+。th+=pi/k){ r=abs(a*cos(n*th)*p)。 x=int(r*cos(th))。 y=int(r*sin(th))。 gx=int(cx+x)。 gy=int(cy+y)。 if(flag==0) {pdcMoveTo(gx,gy)。}//,RGB(255,0,0))。} flag=1。 pdcLineTo(gx,gy)。 } flag=0。 } pdcDeleteDC()。 } 程序運行效果圖 如圖 : 17 圖 18 結(jié) 論 2020年的 3月,我開始準備我的畢業(yè)設(shè)計論文,時至今日,論文基本已經(jīng)完成,從當初拿到題目的茫然,隨后開 始到處找資料,慢慢開始有些思路,到現(xiàn)在的思路清晰,整個過程充滿 努力的汗水,無法用三言兩語就能表達,如今畢業(yè)設(shè)計已經(jīng)差不多完成了,我時常在想,畢業(yè)設(shè)計的完成預(yù)示著什么? 預(yù)示我即將大學(xué)畢業(yè),即將離開我心愛的母校,去外面的社會闖蕩,開始我新的生活。 2020年 12月,當我 知道我的選題通知后,我開始著手準備論文,開始的,對于論文的題目都有些不懂,不明白論文要寫那些方面, 而且既然決定開始寫的話,就必須確定自己要寫那些方面,于是我主動去找我的導(dǎo)師,卜飛宇老師,及時與他溝通,通過老師的耐心指導(dǎo)和幫助,我確立了我要寫的方向。 寒假在家的時候,我時常去網(wǎng)上查找我與我題目相關(guān)的資料,還認真的帶了本筆記本,記錄了許多重要的信息,還對很多信息進行的比較,選擇最有利我論文的資料。 老師對于我準備的資料抱有了肯定的態(tài)度,我一起討論我準備的東西,從中找出那些東西可以再論文中用到,那些不能用, 2020年 2月,由于自己覺得很多專業(yè)知識不夠,因此在外面開始培訓(xùn),至此不能經(jīng)常跟老師見面,不夠還是經(jīng)常電話和網(wǎng)上交流論文的相關(guān)信息。 2020年 3月,學(xué)校開始要求我們交開題報告, 由于自己有做過相關(guān)的準備,因此很快就完成的任務(wù)。 4月中旬 ,學(xué)校要求我們準備畢業(yè)設(shè)計論文的一稿。經(jīng)常許多時間準備,順利的做完了初稿,老師對我的初稿進行了很多了改動,說很多地方還不合格,因此我針對老師要求改動的地方做了改變。 5月初 ,我將改動后的 2稿交給了老師?,F(xiàn)在論文已經(jīng)有 1萬多字了,基本符合的學(xué)校的要求,但我知道我還沒有完成,我還需要準 備我的最終 3稿和畢業(yè)答辯。 這就是我畢業(yè)設(shè)計的準備過程,有許多的困難,但是我最后還是挺過來了,感謝卜老師的幫助,沒有你的幫助,我不可能這么順利的完成。 19 參考文獻 [1] Bezier P of an existing system in motorindustry:theUNISURFsystem [J].ProcRoySocofLondon,1971,A321:207218. [2] Coons S for puter aided design of spacfrms
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1