三次Bezier曲線_第1頁
三次Bezier曲線_第2頁
三次Bezier曲線_第3頁
三次Bezier曲線_第4頁
三次Bezier曲線_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Dim px(4) As Double定義控制點的 x 坐標(biāo)的數(shù)組次 Bezier 曲線一、程序設(shè)計功能:1. 設(shè)計繪圖窗口,能實現(xiàn)數(shù)據(jù)的多次輸入;2. 具有多次繪圖功能,能實現(xiàn)不同數(shù)據(jù)的繪圖;3. 具有清屏功能,在畫完該次圖形后,清除圖像并重建坐標(biāo)系,4. 具有數(shù)據(jù)完整性檢測功能,當(dāng)數(shù)據(jù)輸入不完整時,通過彈窗提示用戶數(shù)據(jù)輸 入不完整。二、程序設(shè)計思想:先在草稿紙上求出三次 Bezier 曲線的各坐標(biāo)參數(shù)前的系數(shù)表達(dá)式:a1 = -px(0) + 3 * px(1) - 3 * px(2) + px(3)b1 = 3 * px(0) - 6 * px(1) + 3 * px(2)c1 = -3

2、 * px(0) + 3 * px(1)d1 = px(0)a2 = -py(0) + 3 * py(1) - 3 * py(2) + py(3)b2 = 3 * py(0) - 6 * py(1) + 3 * py(2)c2 = -3 * py(0) + 3 * py(1)d2 = py(0)然后根據(jù)三次 Bezier 曲線的特點來定義為以 u 為變量的函數(shù),然后根據(jù)取點 速率的不同來繪制相應(yīng)四個頂點的曲線。三、程序代碼:Private Sub Command1_Click()= 12 此處定義繪制坐標(biāo)系時的字體大小,因為后面程序要用到字體設(shè)置, 故此處字體設(shè)置要重新聲明,不可用系統(tǒng)默認(rèn)的字

3、體,否則再次繪制圖形時, 坐標(biāo)由于字體過大而很難看(-300, 300)-(300, -300) 定義 PictureBox 坐標(biāo)系(-300, 0)-(300, 0)(0, 300)-(0, -300) VB編譯系統(tǒng)中,其默認(rèn)的是在Form (窗體)中畫圖,當(dāng)需要在其他屬性框中畫圖時,需要加上其對應(yīng)的屬性框名稱= 270: = 40: X= 15: = 285: Y= 9 坐標(biāo)上的數(shù)字字體小一些For i = -280 To 280 Step 40(i, 0)-(i, 8)= i - 12: = -5: iNext iFor j = -280 To -40 Step 40(0, j)-(8,

4、 j)= -28: = j + 10: jNext jFor j = 40 To 280 Step 40(0, j)-(8, j)= -28: = j + 10: jNext jDim py(4) As Double 定義控制點的 y 坐標(biāo)的數(shù)組Dim a1, b1, c1, d1 As Double 定義 x 系數(shù)Dim a2, b2, c2, d2 As Double 定義 y 系數(shù)Dim x, y, u As Double 定義曲線中的自變量 u 和變量 x , yNotNotIf (Not IsNumeric(Text1) Or Not IsNumeric(Text2) OrIsNum

5、eric(Text3) Or Not IsNumeric(Text4) _Or Not IsNumeric(Text5) Or Not IsNumeric(Text6) OrIsNumeric(Text7) Or Not IsNumeric(Text8) ThenMsgBox 對不起!系統(tǒng)檢測到數(shù)據(jù)輸入不完整,請您輸入完整后繪圖。謝謝配 合!, , 友情提示 Elsepx(0) = : py(0) =px(1) = : py(1) =px(2) = : py(2) =px(3) = : py(3) = 18 設(shè)置字體,為顯示輸入的四個點設(shè)置字體大小= px(0): = py(0): P; 0

6、P0單獨打印For i = 0 To 2(px(i), py(i)-(px(i + 1), py(i + 1), vbGreen: P; i+ 1 P1,P2,P3 用 for 循環(huán)打印Next iFor i = 0 To 3 繪制四個圓點,此處代碼可優(yōu)化,亦可用 circle 語 句畫小圓后填充顏色= 7(px(i), py(i)-(px(i) + 1, py(i) - 1)Next ia1 = -px(0) + 3 * px(1) - 3 * px(2) + px(3) 計算 x 和 y 的參 數(shù)b1 = 3 * px(0) - 6 * px(1) + 3 * px(2)c1 = -3 *

7、 px(0) + 3 * px(1)d1 = px(0)a2 = -py(0) + 3 * py(1) - 3 * py(2) + py(3)b2 = 3 * py(0) - 6 * py(1) + 3 * py(2)c2 = -3 * py(0) + 3 * py(1)d2 = py(0)For u = 0 To 1 Step 每當(dāng) u 增加求一次 x 和 yx = al * u A 3 + bl * u * u + cl * u + di 求 x 的值y = a2 * u a 3 + b2 * u * u + c2 * u + d2 求 y 的值設(shè)置畫線起點If u = 0 Then= x

8、= 3Else-(x, y), RGB(255, 0, 0) 連點成線End IfNext uEnd IfEnd SubPrivate Sub Command2_Click() 用于清空輸入數(shù)據(jù) Illi Illi Illi Illi Illi Illi Illi IlliEnd SubPrivate Sub Command3_Click() 清屏后再次繪制坐標(biāo)系= 2= 12 此處定義繪制坐標(biāo)系時的字體大小,因為后面程序要用到字體設(shè)置,故此處字體設(shè)置要重新聲明,不可用系統(tǒng)默認(rèn)的字體,否則再次繪制圖形時,坐標(biāo)由于字體過大而很難看(-300, 0)-(300, 0)(0, 300)-(0, -3

9、00) VB 編譯系統(tǒng)中,其默認(rèn)的是在 Form (窗體)中畫圖, 當(dāng)需要在其他屬性框中畫圖時,需要加上其對應(yīng)的屬性框名稱= 270: = 40: X= 15: = 285: Y= 9For i = -280 To 280 Step 40(i, 0)-(i, 8)= i - 12: = -5: iNext iFor j = -280 To -40 Step 40(0, j)-(8, j)= -28: = j + 10: jNext jFor j = 40 To 280 Step 40(0, j)-(8, j)= -28: = j + 10: jNext jEnd SubPrivate Sub

10、Form_Load() 預(yù)輸入數(shù)據(jù),避免調(diào)試時多次輸入數(shù)據(jù),其隨窗 體運行而顯示= -260: = -230冒號用于多條語句并行書寫,以減小代碼所占空= 260: = -230= 200: = 230= -260: = 230End SubVB程序運行結(jié)果圖片展示:X機(jī)械11005班劉剛2刃2102OTKO2013年4月丄日80Q.-BO-i?r第三次程序設(shè)計心得在三次 Bezier 曲線的程序設(shè)計中,明白了計算機(jī)對于 圖行處理的能力是相當(dāng)強(qiáng)的。對于 VB 而言,其能根據(jù)取點 速率的不同而精確確定相應(yīng)圖形的圖像,能很好的滿足人 們在日常工作中的圖像需求。在本次程序設(shè)計中花費了大量時間在程序優(yōu)化上,特別 是在界面美化上。因為我始終覺得一個良好的可執(zhí)行程序 不僅要具有精確計算的能力及繪圖能力,還應(yīng)該具有良好 的用戶體驗界面,真正讓用戶在使用該程序時能有愉悅爽 朗的心情。這是我認(rèn)為的 CAD輔助設(shè)計的本質(zhì)。在具體界面美化過程中,我查找了大量的背景圖片,最 后選定了一張自然風(fēng)景為背景。因為一張好的背景圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論