




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、三次Bezier曲線一、程序設(shè)計功能:1.設(shè)計繪圖窗口,能實現(xiàn)數(shù)據(jù)的多次輸入;2.具有多次繪圖功能,能實現(xiàn)不同數(shù)據(jù)的繪圖;3.具有清屏功能,在畫完該次圖形后,清除圖像并重建坐標系,4.具有數(shù)據(jù)完整性檢測功能,當數(shù)據(jù)輸入不完整時,通過彈窗提示用戶數(shù)據(jù)輸入不完整。二、程序設(shè)計思想:先在草稿紙上求出三次Bezier曲線的各坐標參數(shù)前的系數(shù)表達式:a1 = -px(0) + 3 * px(1) - 3 * px(2) + px(3) b1 = 3 * px(0) - 6 * px(1) + 3 * px(2) c1 = -3 * px(0) + 3 * px(1) d1 = px(0) a2 = -p
2、y(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()Picture1.DrawWidth = 2Picture1.FontSize = 12 '此處定義繪制坐標系時的字體大小,因為后面程序要用到字體設(shè)置,故此處字體設(shè)置要重新聲明,不可用系
3、統(tǒng)默認的字體,否則再次繪制圖形時,坐標由于字體過大而很難看Picture1.Scale (-300, 300)-(300, -300) '定義PictureBox坐標系Picture1.Line (-300, 0)-(300, 0)Picture1.Line (0, 300)-(0, -300) 'VB編譯系統(tǒng)中,其默認的是在Form(窗體)中畫圖,當需要在其他屬性框中畫圖時,需要加上其對應(yīng)的屬性框名稱Picture1.CurrentX = 270: Picture1.CurrentY = 40: Picture1.Print "X"Picture1.Cur
4、rentX = 15: Picture1.CurrentY = 285: Picture1.Print "Y"Picture1.FontSize = 9 '坐標上的數(shù)字字體小一些For i = -280 To 280 Step 40Picture1.Line (i, 0)-(i, 8)Picture1.CurrentX = i - 12: Picture1.CurrentY = -5: Picture1.Print iNext iFor j = -280 To -40 Step 40Picture1.Line (0, j)-(8, j)Picture1.Curren
5、tX = -28: Picture1.CurrentY = j + 10: Picture1.Print jNext jFor j = 40 To 280 Step 40Picture1.Line (0, j)-(8, j)Picture1.CurrentX = -28: Picture1.CurrentY = j + 10: Picture1.Print jNext j Dim px(4) As Double '定義控制點的x坐標的數(shù)組 Dim py(4) As Double '定義控制點的y坐標的數(shù)組 Dim a1, b1, c1, d1 As Double '定義
6、x系數(shù) Dim a2, b2, c2, d2 As Double '定義y系數(shù) Dim x, y, u As Double '定義曲線中的自變量u和變量x,y If (Not IsNumeric(Text1) Or Not IsNumeric(Text2) Or Not IsNumeric(Text3) Or Not IsNumeric(Text4) _ Or Not IsNumeric(Text5) Or Not IsNumeric(Text6) Or Not IsNumeric(Text7) Or Not IsNumeric(Text8) ThenMsgBox "
7、對不起!系統(tǒng)檢測到數(shù)據(jù)輸入不完整,請您輸入完整后繪圖。謝謝配合!", , "友情提示"Else px(0) = Text1.Text: py(0) = Text2.Text px(1) = Text3.Text: py(1) = Text4.Text px(2) = Text5.Text: py(2) = Text6.Text px(3) = Text7.Text: py(3) = Text8.Text Picture1.FontSize = 18 '設(shè)置字體,為顯示輸入的四個點設(shè)置字體大小 Picture1.CurrentX = px(0): Pictu
8、re1.CurrentY = py(0): Picture1.Print "P" 0 'P0單獨打印 For i = 0 To 2 Picture1.DrawWidth = 1.5 Picture1.Line (px(i), py(i)-(px(i + 1), py(i + 1), vbGreen: Picture1.Print "P" i + 1 'P1,P2,P3用for循環(huán)打印 Next i For i = 0 To 3 '繪制四個圓點,此處代碼可優(yōu)化,亦可用circle語句畫小圓后填充顏色 Picture1.DrawWid
9、th = 7 Picture1.Line (px(i), py(i)-(px(i) + 1, py(i) - 1) Next i a1 = -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 * 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)
10、+ 3 * py(1) d2 = py(0) For u = 0 To 1 Step 0.00001'每當u增加0.00001求一次x和y x = a1 * u 3 + b1 * u * u + c1 * u + d1 '求x的值 y = a2 * u 3 + b2 * u * u + c2 * u + d2 '求y的值 If u = 0 Then Picture1.CurrentX = x '設(shè)置畫線起點 Picture1.CurrentY = y Else Picture1.DrawWidth = 3 Picture1.Line -(x, y), RGB(2
11、55, 0, 0)'連點成線 End If Next uEnd IfEnd SubPrivate Sub Command2_Click() '用于清空輸入數(shù)據(jù) Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Text8.Text = ""End S
12、ubPrivate Sub Command3_Click() '清屏后再次繪制坐標系Picture1.ClsPicture1.DrawWidth = 2Picture1.FontSize = 12 '此處定義繪制坐標系時的字體大小,因為后面程序要用到字體設(shè)置,故此處字體設(shè)置要重新聲明,不可用系統(tǒng)默認的字體,否則再次繪制圖形時,坐標由于字體過大而很難看Picture1.Scale (-300, 300)-(300, -300) '定義PictureBox坐標系Picture1.Line (-300, 0)-(300, 0)Picture1.Line (0, 300)-(0
13、, -300) 'VB編譯系統(tǒng)中,其默認的是在Form(窗體)中畫圖,當需要在其他屬性框中畫圖時,需要加上其對應(yīng)的屬性框名稱Picture1.CurrentX = 270: Picture1.CurrentY = 40: Picture1.Print "X"Picture1.CurrentX = 15: Picture1.CurrentY = 285: Picture1.Print "Y"Picture1.FontSize = 9For i = -280 To 280 Step 40Picture1.Line (i, 0)-(i, 8)Pictu
14、re1.CurrentX = i - 12: Picture1.CurrentY = -5: Picture1.Print iNext iFor j = -280 To -40 Step 40Picture1.Line (0, j)-(8, j)Picture1.CurrentX = -28: Picture1.CurrentY = j + 10: Picture1.Print jNext jFor j = 40 To 280 Step 40Picture1.Line (0, j)-(8, j)Picture1.CurrentX = -28: Picture1.CurrentY = j + 1
15、0: Picture1.Print jNext jEnd SubPrivate Sub Form_Load() '預(yù)輸入數(shù)據(jù),避免調(diào)試時多次輸入數(shù)據(jù),其隨窗體運行而顯示 Text1.Text = -260: Text2.Text = -230 '冒號用于多條語句并行書寫,以減小代碼所占空間 Text3.Text = 260: Text4.Text = -230 Text5.Text = 200: Text6.Text = 230 Text7.Text = -260: Text8.Text = 230End SubVB程序運行結(jié)果圖片展示:第三次程序設(shè)計心得在三次Bezier曲線的程序設(shè)計中,明白了計算機對于圖行處理的能力是相當強的。對于VB而言,其能根據(jù)取點速率的不同而精確確定相應(yīng)圖形的圖像,能很好的滿足人們在日常工作中的圖像需求。在本次程序設(shè)計中花費了大量時間在程序優(yōu)化上,特別是在界面美化上。因為我始終覺得一個良好的可執(zhí)行程序不僅要具有精確計算的能力及繪圖能力,還應(yī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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030體重控制補品行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025年住院醫(yī)師規(guī)范培訓(xùn)(各省)-安徽住院醫(yī)師臨床病理科歷年參考題庫含答案解析(5卷100題)
- 2025年住院醫(yī)師規(guī)范培訓(xùn)(各省)-上海住院醫(yī)師公共科目歷年參考題庫含答案解析(5卷單選一百題)
- 2025-2030中國紫外光治療儀行業(yè)發(fā)展分析及投資前景預(yù)測研究報告
- 2025年住院醫(yī)師考試-兒外科住院醫(yī)師歷年參考題庫含答案解析(5卷單選100題)
- 二零二四版出國留學(xué)考試輔導(dǎo)培訓(xùn)服務(wù)協(xié)議含答案
- 兒童畫團扇課件視頻
- 兒童畫廚房課件
- 《新能源汽車電工電子技術(shù)(微課版)(含任務(wù)工單)》課件 1.1.2 觸電的概念、觸電程度的相關(guān)因素
- 餐飲圣誕節(jié)促銷活動方案
- 化妝初期培訓(xùn)課件
- 2025年東航食品招聘筆試參考題庫含答案解析
- 公司業(yè)績考核管理制度
- 餐廳運營與管理制度
- DB31/T 908-2018地理標志產(chǎn)品松江大米
- 教育改革背景下的中醫(yī)師承教育新思路
- 2025屆云南省昆明盤龍區(qū)聯(lián)考七下數(shù)學(xué)期末復(fù)習(xí)檢測試題含解析
- 企業(yè)海關(guān)AEO認證流程優(yōu)化與通關(guān)效率提升策略
- 燃氣公司危險源辨識、風(fēng)險評價與控制管理
- 人教版九年級化學(xué)上冊單元基礎(chǔ)訓(xùn)練試題-全套
- 醫(yī)療美容診所管理規(guī)章制度
評論
0/150
提交評論