版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、用vb開發(fā)交互式cad系統(tǒng)摘 要本次畢業(yè)設(shè)計的任務(wù)是利用vb開發(fā)交互式cad系統(tǒng)中的圖形的編輯部分。設(shè)計具有交互繪圖的功能。能實現(xiàn)鼠標(biāo)繪圖、圖元選擇和編輯,具備圖形輸出功能。實現(xiàn)交互式繪圖過程涉及到圖元的數(shù)學(xué)模型,數(shù)據(jù)管理、數(shù)據(jù)編輯等方面的知識和技巧。圖元的選擇編輯的重點放在了圖元的平移和旋轉(zhuǎn)。此外還設(shè)計了的啟動窗口和窗口的顯示。交互式cad技術(shù)在辦公、繪圖平面設(shè)計、工業(yè)設(shè)計等方面都有很多應(yīng)用。關(guān)鍵字: 交互式cad 圖形的編輯 窗口 abstractthis graduation project duty is develops in the interactive cad system t
2、he graph edition part. the design has the alternately cartography the function. can realize the mouse cartography, a chart yuan choice and the edition, has the graphical output function. realizes the interactive cartography process to involve to the chart yuan mathematical model, aspect the and so o
3、n data management, data edition knowledge and the skill. the chart yuan choice edition key point has placed a chart yuan translation and revolves. in addition also has designed start window and window demonstration. the interactive cad technology in aspect and so on work, cartography plane design, i
4、ndustrial design all has applies very much.key words: interactive cad graph edition window目 錄第1章 緒論 5第2章 可行性研究 6 2.1 問題定義 2.2 可行性分析第3章 總體設(shè)計 73.1 總體規(guī)劃 3.2 開發(fā)環(huán)境和工具3.3 軟件介紹3.4系統(tǒng)實現(xiàn)和設(shè)計主要分以下幾個步驟第4章 具體設(shè)計 8 4.1具體設(shè)計的詳細(xì)說明圖 9 4.2 圖元的編輯10 4.3 圖元的拾取與選擇 154.4 窗體的顯示控制19第5章 心得體會 20參考資料 21 第一章 緒論 對于大多數(shù)人而言,“交互式cad技術(shù)”
5、是一個熟悉而陌生的概念,為什么這么說呢?因為您可能經(jīng)常在使用這種技術(shù),卻沒有意識到。什么是交互式cad技術(shù)呢?打一個比方說;用鼠標(biāo)在屏幕上畫一條直線,選中它后,可以改變直線段的方位和長度。這種技術(shù)繪圖具有方便、直觀、高效率等特點,在各種專業(yè)軟件、數(shù)據(jù)處理軟件、autocad、flash、powerpoint、word等很很多軟件里面都有廣泛的應(yīng)用。 在交互式系統(tǒng)中,不僅可以實現(xiàn)用鼠標(biāo)繪圖,還可以選擇圖元,并對選中的圖元進(jìn)行修改、幾何變換和刪除等操作。為了實現(xiàn)這些功能,交互式cad系統(tǒng)不僅需要考慮圖形的數(shù)學(xué)模型,還要在數(shù)據(jù)結(jié)構(gòu)、內(nèi)存管理等方面做出籌劃。) 可行性研究 2.1 問題定義本系統(tǒng)是一個
6、關(guān)于交互式cad的應(yīng)用系統(tǒng)。(1) 該系統(tǒng)應(yīng)該在整體上實現(xiàn)繪制各種圖元、編輯圖元和顯示編輯好的窗體等模塊。(2)該系統(tǒng)中,圖元數(shù)據(jù)需要保存起來,以便進(jìn)行編輯操作。以合理的數(shù)據(jù)結(jié)構(gòu)進(jìn)行保存,可以在內(nèi)存、系統(tǒng)安全性方面得到好處,從而提高程序的整體性能。 2.2 可行性分析技術(shù)可行性:根據(jù)新系統(tǒng)目標(biāo)來衡量所需的技術(shù)是否具備,一般可以從硬件、軟件的性能要求、環(huán)境條件、技術(shù)人員水平和數(shù)量等方面去考慮和分析。這次設(shè)計的系統(tǒng)采用visual basic 6.0系統(tǒng)開發(fā)的。 硬件要求:486以上cpu, 64mb以上內(nèi)存,2g以上硬盤。 第三章 總體設(shè)計交互式cad系統(tǒng)要涉及到大量的數(shù)據(jù)處理,如何描述、輸入、
7、管理、編輯和輸出它們,在開發(fā)以前需要進(jìn)行詳細(xì)的規(guī)劃。3.1 總體規(guī)劃1. 數(shù)據(jù)的組織和描述(1) 數(shù)據(jù)結(jié)構(gòu)(2) 數(shù)學(xué)模型2. 數(shù)據(jù)的輸入實現(xiàn)鼠標(biāo)交互式輸入數(shù)據(jù)3. 數(shù)據(jù)的管理1.0.0.0.0 type結(jié)構(gòu)2.0.0.0.0 vb類4. 數(shù)據(jù)編輯) 圖元的拾取和選擇) 圖元的幾何變化平移和旋轉(zhuǎn)。5. 數(shù)據(jù)的輸出(1) 文本輸出(2) 以dxf格式輸出6. uml類圖7. 界面交互3.2 開發(fā)環(huán)境和工具windows平臺visual basic 6.03.3 軟件介紹visual basic 6.0為開發(fā)工具。vb6.0是微軟公司推出的可視化編程工具msdn之一, visual basic 6
8、.0是一門功能強(qiáng)大的計算機(jī)語言,為用戶提供了一系列的屬性、方法和控件。采用了面向?qū)ο蟮木幊碳夹g(shù)進(jìn)行編程。3.4系統(tǒng)實現(xiàn)和設(shè)計主要分以下幾個步驟1. 在windows平臺下安裝visual basic 6.0軟件。2. 創(chuàng)建主窗體和顯示控制窗體。3. 用visual basic 6.0語言來編寫程序。 第四章 具體設(shè)計 設(shè)計圖元編輯的流程圖開始結(jié)束移動圖元=0移動圖元x,y=0x=x cosy siny= x sin+ y cosx=x +x y=y+y輸入x,y 3. 具體設(shè)計的詳細(xì)說明圖本次設(shè)計包括三個部分;圖元的拾取、圖元的編輯和窗體的制作。 0. 總體設(shè)計過程說明圖圖元繪制的具體代碼實現(xiàn)
9、圖元的編輯和變換圖元的拾取和選擇具體圖元編輯的代碼實現(xiàn)顯示控制的代碼具體實現(xiàn)顯示窗體的制作0. 圖元編輯說明圖直線多義線圓圓弧文本圖元的平移圖元編輯圖元的旋轉(zhuǎn)0. 圖元拾取的功能分析圖直線多義線圓圓弧文本逐步選取圖元拾取 分類選取全刪除全選4.2圖元的編輯在設(shè)計過程中圖元編輯部分是具體設(shè)計的核心部分。一. 二維圖形變換的基本原理、算法和具體實現(xiàn)用計算機(jī)進(jìn)行輔助設(shè)計時,復(fù)制、移動、旋轉(zhuǎn)已有圖元可以提高繪圖效率,對圖形元素進(jìn)行集合變換可以實現(xiàn)這些操作。圖元的基本形狀和位置由它們的控制點唯一確定,比如直線段由直線段的起點和終點確定,圓弧由圓弧的圓心、起點和終點確定等。所以對圖元的旋轉(zhuǎn)、平移等集合變換
10、可以歸結(jié)為對圖元控制點的幾何變換。控制點的幾何變換完成以后,根據(jù)變換后的控制點繪圖,就可得到變換后的圖元。二維空間中一點變換前后的關(guān)系可用下式表示: t11 t12 x y 1 = x y 1 t21 t22 x y其中, x y 為變換前點的坐標(biāo),x y 為變換后的坐標(biāo)。 t11 t12 t = t21 t22 變換矩陣。 x y用齊次坐標(biāo)表示,上式可以寫成: x=x t11+y t21+x y=y t12+y t22+y(1) 平移變換平移變換是把選中的圖元平移到另一位置,如圖2-1所示。 y p (x, y) p(x,y) x 圖 2-1平移變換圖示平移變換的變換矩陣為 1 0 0 t
11、= 0 1 0 x y 1所以有 1 0 0 x y 1 = x y 1 0 1 0 x y 1 既 x=x +x y=y+y其中,x,y 為評議前點的坐標(biāo);x,y為平移后點的坐標(biāo),x和y 為點在x方向和y方向上平移的距離。(2) 旋轉(zhuǎn)變換旋轉(zhuǎn)變換使圖元繞某點旋轉(zhuǎn)一定角度后,到達(dá)新位置,如圖2-2所示。逆時針旋轉(zhuǎn)時,旋轉(zhuǎn)角度為正,反之為負(fù)。 y p (x, y) p(x,y) x 圖 2-2旋轉(zhuǎn)變換 cos sin 0 饒原點旋轉(zhuǎn)的變換矩陣為 t = -sin cos 0 0 0 1 所以有 cos sin 0 x y 1 = x y 1 t = -sin cos 0 0 0 1即 x=x c
12、osy siny= x sin+ y cos一. 點的變換圖元的變換可以歸結(jié)為點的變換,首先在position類中添加點的變換函數(shù)。) 平移變換移動后點的坐標(biāo)值等于移動前點的坐標(biāo)值與位移矢量的和。在position類中添加pntmove函數(shù),該函數(shù)有兩個參數(shù)xx和yy,分別定義移動矢量的水平向分量和垂直向分量。在直角坐標(biāo)系中,當(dāng)xx或yy為正時,點向右、向上移動;當(dāng)xx或yy為負(fù)時,點向左、向下移動。函數(shù)返回一個position類實例,為移動后的點。(2) 旋轉(zhuǎn)變換旋轉(zhuǎn)一個點需要確定兩個參數(shù),既旋轉(zhuǎn)的參照點和旋轉(zhuǎn)的角度。參照點指的是饒哪個點旋轉(zhuǎn)。在position類中添加pntrotate函數(shù)
13、,定義點的旋轉(zhuǎn)行為。pntrotate函數(shù)有兩個參數(shù),即basepos和angle分別定義旋轉(zhuǎn)參照點和旋轉(zhuǎn)角度。旋轉(zhuǎn)后點的坐標(biāo)可以根據(jù)原理部分的計算公式獲得。,二. 圖元的變換1. 直線段的幾何變換(1) 直線段的平移變換直線段的平移變換實際上是對直線段的起點和終點作平移變換,然后將變換后的起點和終點用直線段相連接。在cline類模塊中添加cgelement_move過程,定義直線段的平移變換。該函數(shù)有兩個參數(shù),即basepos和despos,分別定義平移前后的相對位置。平移前直線段上任一點到basepos點的距離和方向與平移后直線段上對應(yīng)點到despos點的距離和方向是相同的。兩個點橫坐標(biāo)之
14、間和縱坐標(biāo)之間的差異分別表示橫向和縱向移動的距離和方向。(2)直線段的旋轉(zhuǎn)變換通過旋轉(zhuǎn)直線段的起點和終點,可以實現(xiàn)直線段的旋轉(zhuǎn)。在cline類模塊中添加cgelement_rotate過程,該過程的兩個參數(shù)basepos和angle分別定義旋轉(zhuǎn)的基點和角度。2. 多義線的幾何變換(1)多義線的平移變換多義線的平移變換可通過平移多義線的頂點來實現(xiàn)。在cpolyline類模塊中添加cgelement_move過程,以描述多義線的平移變換。(2)多義線的旋轉(zhuǎn)變換在cpolyline類模塊中添加cgelement_rotate過程,通過對多義線的頂點進(jìn)行旋轉(zhuǎn)變換來實現(xiàn)多義線的旋轉(zhuǎn)變換。3. 圓的幾何變
15、換(1)圓的平移變換 圓的平移動變換通過對圓的圓心和圓上一點進(jìn)行平移變換類實現(xiàn)。在ccircle類模塊中添加cgelement_move函數(shù),描述圓的平移變換。(2)圓的旋轉(zhuǎn)變換在ccircle類模塊中添加cgelement_rotate過程,通過對圓心和圓上一點進(jìn)行旋轉(zhuǎn)變換來實現(xiàn)圓的旋轉(zhuǎn)變換。4. 圓弧的幾何變換1. 圓弧的平移變換在carc類模塊中添加cgelement_move過程,實現(xiàn)圓弧的平移變換。(2)圓弧的旋轉(zhuǎn)變換在carc類模塊中添加cgelement_rotate過程,對圓弧的圓心、起點和終點進(jìn)行旋轉(zhuǎn)變換。2.3 圖形變換交互功能的實現(xiàn)2.3.1 平移變換cmove類平移變換
16、的交互過程通過cmove類來實現(xiàn)。該類利用鼠標(biāo)單擊和移動事件代碼來描述各種圖元進(jìn)行平移變換時的交互過程。該類實現(xiàn)了ccommand接口。2.3.2旋轉(zhuǎn)變換通過創(chuàng)建crotate類來進(jìn)行描述。通過響應(yīng)鼠標(biāo)單擊和移動事件來用圖形顯示圖元旋轉(zhuǎn)的基點和角度。2.4 刪除圖元包括內(nèi)存刪除和屏幕刪除兩部分。4.3圖元的拾取與選擇要實現(xiàn)上面的圖元的編輯首先要實現(xiàn)圖元的拾取功能。圖元的拾取是指計算機(jī)識別圖元的方法。圖元的選擇是把已經(jīng)識別的圖元單獨保存,以備修改和編輯。一.包圍矩形的計算包圍矩形指能包圍圖元的最小矩形。(1)直線段的包圍矩形直線段的包圍矩形是以直線段的起點和終點為對角頂點的矩形。為了提高拾取效率
17、,通常要將直線段的包圍矩形向外擴(kuò)展一定的距離如上圖。(2)多義線的包圍矩形多義線的包圍矩形由多義線的頂點坐標(biāo)決定。以所有頂點中最小的橫坐標(biāo)和最小的縱坐標(biāo)所確定的點與最大的橫坐標(biāo)與最大的縱坐標(biāo)所確定的點為對角頂點的矩形為多義線的包圍矩形。(3)圓的包圍矩形圓的包圍矩形為正方形,是圓的外切矩形。包圍矩形的左下角坐標(biāo)和右上角坐標(biāo)由圓心坐標(biāo)和圓的半徑確定。左下角坐標(biāo)為圓心坐標(biāo)減去圓半徑,右上角坐標(biāo)為圓心坐標(biāo)加上圓半徑。 (4)圓弧的包圍矩形圓弧的包圍矩形是包圍圓弧的最小矩陣。計算圓弧的包圍矩形,需要計算圓弧與過圓心的坐標(biāo)軸4個方向上的相交關(guān)系。因為圓弧與坐標(biāo)軸正向或負(fù)向的交點坐標(biāo)在數(shù)值上代表了這個方向
18、上的最大值。如果相交,則包圍矩形在這個方向上的值便是該值。如果不相交,包圍矩形在這個方向上的最大值就是圓弧起點和終點x、y坐標(biāo)的最大值。圓弧與4個軸的相交關(guān)系可以通過比較可能的交點與圓弧之間的關(guān)系得到。如果圓弧所在的圓與4個坐標(biāo)軸的交點在圓弧內(nèi),則對應(yīng)的交點便是圓弧與4個坐標(biāo)軸的交點,否則不是。 (5)文本的包圍矩形 要獲取文本的包圍矩形,需要知道文本的寬度和高度,以及文本插入點的位置。包圍矩形左下角的橫坐標(biāo)為插入點的橫坐標(biāo),縱坐標(biāo)為插入點的縱坐標(biāo)減去文本的高度;右上角的橫坐標(biāo)為插入點的橫坐標(biāo)加上文本的寬度,縱坐標(biāo)為插入點的縱坐標(biāo)。i am the first 二.圖元的拾取(1)直線段的拾取
19、如果拾取點落在直線段的包圍矩形內(nèi),則進(jìn)一步判斷拾取點與直線段之間的距離。如果小于指定的容限值,則該直線段被拾取。(2)多義線的拾取如果組成對義線的任何一條直線段被拾取到,則多義線被拾取到。在cline類中添加cgelement_pick方法。(3)圓的拾取以圓的圓心為圓心,以圓的半徑加減r長度為半徑,得到一個包圍圓的環(huán)帶。如果鼠標(biāo)點落在該環(huán)內(nèi),則圓被拾取。圓拾取的實質(zhì)是計算拾取點到圓心的距離。(4)圓弧的拾取圓弧的拾取分兩步。首先判斷圓弧所在的圓是否被拾取。如果沒有被拾取,則圓弧不被拾取;如果圓已經(jīng)被拾取,則繼續(xù)判斷拾取點是否落在圓弧的范圍內(nèi)。如果落在圓弧范圍內(nèi),則圓弧被拾取,否則不被拾取。(
20、5)文本的拾取拾取標(biāo)注文本,首先要判斷拾取點是否落在文本的包圍矩形中,如果在,則文本拾取。4.3 圖元的選擇一. 添加選擇集 為了存儲選中的圖元,需要添加圖元的選擇集。二. 逐個選擇圖元單擊某圖元時,如果該圖元被拾取,把它添加到相應(yīng)的集合類進(jìn)行保存,則該圖元被選擇。在繪圖環(huán)境中可以連續(xù)選擇多個圖元,并把它們放到選擇集中。 與圖元有關(guān)的菜單資源菜單項標(biāo)題名稱逐類選擇selonebyone分類選擇selbyclass選擇直線段selline選擇多義線selplines選擇圓selcircles選擇selarcs選擇標(biāo)注文本seltexts全選selall放棄全選selnone三. 分類選擇 一個圖形往往由多種不同的圖元組成,如果對某一類圖元感興趣,可以直接選擇該類圖元,并進(jìn)行編輯??赏ㄟ^selectges函數(shù)來實現(xiàn)。四. 全選全部選擇圖元,需要將全部圖元集合類中的圖元以選擇模式重繪,并放入選擇集。4.4 窗體的顯示控制(1)創(chuàng)建工程和窗體1frmlash窗體設(shè)計2. 啟動frmmain窗體時顯示fr
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源汽車動力電池回收利用合同范本4篇
- 2024食用菌種植基地環(huán)境保護(hù)與生態(tài)修復(fù)合同3篇
- 2024版美容院產(chǎn)品購銷合同
- 2025年度商業(yè)地產(chǎn)項目租賃收益分成合同范本4篇
- 編制加油站生產(chǎn)建設(shè)項目可行性研究報告編制說明
- 2025年綠色建筑裝修垃圾清運及節(jié)能減排合同2篇
- 2025年度個人樓房房買賣合同標(biāo)準(zhǔn)范本下載4篇
- 2025年社區(qū)商業(yè)綜合體商鋪租賃管理協(xié)議3篇
- 2025年版影視作品版權(quán)轉(zhuǎn)讓合同范本3篇
- 2025年度個人股東股權(quán)轉(zhuǎn)讓協(xié)議范本全面規(guī)范股權(quán)轉(zhuǎn)讓手續(xù)2篇
- 高考全國Ⅲ卷語文真題含答案
- 10kV架空線路專項施工方案
- OGSM戰(zhàn)略規(guī)劃框架:實現(xiàn)企業(yè)目標(biāo)的系統(tǒng)化方法論
- 遼寧省大連市中山區(qū)2023-2024學(xué)年七年級下學(xué)期期末數(shù)學(xué)試題
- 2023年版《安寧療護(hù)實踐指南(試行)》解讀課件
- 2024年新課標(biāo)高考化學(xué)試卷(適用黑龍江、遼寧、吉林地區(qū) 真題+答案)
- AQ6111-2023個體防護(hù)裝備安全管理規(guī)范
- 鈷酸鋰-安全技術(shù)說明書MSDS
- 江蘇省“大唐杯”全國大學(xué)生新一代信息通信技術(shù)大賽省賽題庫(含答案)
- (正式版)JBT 9229-2024 剪叉式升降工作平臺
- 如何做好談話筆錄
評論
0/150
提交評論