




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、用vb開發交互式cad系統摘 要本次畢業設計的任務是利用vb開發交互式cad系統中的圖形的編輯部分。設計具有交互繪圖的功能。能實現鼠標繪圖、圖元選擇和編輯,具備圖形輸出功能。實現交互式繪圖過程涉及到圖元的數學模型,數據管理、數據編輯等方面的知識和技巧。圖元的選擇編輯的重點放在了圖元的平移和旋轉。此外還設計了的啟動窗口和窗口的顯示。交互式cad技術在辦公、繪圖平面設計、工業設計等方面都有很多應用。關鍵字: 交互式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章 總體設計 73.1 總體規劃 3.2 開發環境和工具3.3 軟件介紹3.4系統實現和設計主要分以下幾個步驟第4章 具體設計 8 4.1具體設計的詳細說明圖 9 4.2 圖元的編輯10 4.3 圖元的拾取與選擇 154.4 窗體的顯示控制19第5章 心得體會 20參考資料 21 第一章 緒論 對于大多數人而言,“交互式cad技術”
5、是一個熟悉而陌生的概念,為什么這么說呢?因為您可能經常在使用這種技術,卻沒有意識到。什么是交互式cad技術呢?打一個比方說;用鼠標在屏幕上畫一條直線,選中它后,可以改變直線段的方位和長度。這種技術繪圖具有方便、直觀、高效率等特點,在各種專業軟件、數據處理軟件、autocad、flash、powerpoint、word等很很多軟件里面都有廣泛的應用。 在交互式系統中,不僅可以實現用鼠標繪圖,還可以選擇圖元,并對選中的圖元進行修改、幾何變換和刪除等操作。為了實現這些功能,交互式cad系統不僅需要考慮圖形的數學模型,還要在數據結構、內存管理等方面做出籌劃。) 可行性研究 2.1 問題定義本系統是一個
6、關于交互式cad的應用系統。(1) 該系統應該在整體上實現繪制各種圖元、編輯圖元和顯示編輯好的窗體等模塊。(2)該系統中,圖元數據需要保存起來,以便進行編輯操作。以合理的數據結構進行保存,可以在內存、系統安全性方面得到好處,從而提高程序的整體性能。 2.2 可行性分析技術可行性:根據新系統目標來衡量所需的技術是否具備,一般可以從硬件、軟件的性能要求、環境條件、技術人員水平和數量等方面去考慮和分析。這次設計的系統采用visual basic 6.0系統開發的。 硬件要求:486以上cpu, 64mb以上內存,2g以上硬盤。 第三章 總體設計交互式cad系統要涉及到大量的數據處理,如何描述、輸入、
7、管理、編輯和輸出它們,在開發以前需要進行詳細的規劃。3.1 總體規劃1. 數據的組織和描述(1) 數據結構(2) 數學模型2. 數據的輸入實現鼠標交互式輸入數據3. 數據的管理1.0.0.0.0 type結構2.0.0.0.0 vb類4. 數據編輯) 圖元的拾取和選擇) 圖元的幾何變化平移和旋轉。5. 數據的輸出(1) 文本輸出(2) 以dxf格式輸出6. uml類圖7. 界面交互3.2 開發環境和工具windows平臺visual basic 6.03.3 軟件介紹visual basic 6.0為開發工具。vb6.0是微軟公司推出的可視化編程工具msdn之一, visual basic 6
8、.0是一門功能強大的計算機語言,為用戶提供了一系列的屬性、方法和控件。采用了面向對象的編程技術進行編程。3.4系統實現和設計主要分以下幾個步驟1. 在windows平臺下安裝visual basic 6.0軟件。2. 創建主窗體和顯示控制窗體。3. 用visual basic 6.0語言來編寫程序。 第四章 具體設計 設計圖元編輯的流程圖開始結束移動圖元=0移動圖元x,y=0x´=x cosy siny´= x sin+ y cosx´=x +x y´=y+y輸入x,y 3. 具體設計的詳細說明圖本次設計包括三個部分;圖元的拾取、圖元的編輯和窗體的制作。
9、 0. 總體設計過程說明圖圖元繪制的具體代碼實現圖元的編輯和變換圖元的拾取和選擇具體圖元編輯的代碼實現顯示控制的代碼具體實現顯示窗體的制作0. 圖元編輯說明圖直線多義線圓圓弧文本圖元的平移圖元編輯圖元的旋轉0. 圖元拾取的功能分析圖直線多義線圓圓弧文本逐步選取圖元拾取 分類選取全刪除全選4.2圖元的編輯在設計過程中圖元編輯部分是具體設計的核心部分。一. 二維圖形變換的基本原理、算法和具體實現用計算機進行輔助設計時,復制、移動、旋轉已有圖元可以提高繪圖效率,對圖形元素進行集合變換可以實現這些操作。圖元的基本形狀和位置由它們的控制點唯一確定,比如直線段由直線段的起點和終點確定,圓弧由圓弧的圓心、起
10、點和終點確定等。所以對圖元的旋轉、平移等集合變換可以歸結為對圖元控制點的幾何變換。控制點的幾何變換完成以后,根據變換后的控制點繪圖,就可得到變換后的圖元。二維空間中一點變換前后的關系可用下式表示: t11 t12 x´ y´ 1 = x y 1 t21 t22 x y其中, x y 為變換前點的坐標,x´ y´ 為變換后的坐標。 t11 t12 t = t21 t22 變換矩陣。 x y用齊次坐標表示,上式可以寫成: x´=x t11+y t21+x y´=y t12+y t22+y(1) 平移變換平移變換是把選中的圖元平移到另一位置
11、,如圖2-1所示。 y p (x, y) p(x,y) x 圖 2-1平移變換圖示平移變換的變換矩陣為 1 0 0 t = 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 為評議前點的坐標;x´,y´為平移后點的坐標,x和y 為點在x方向和y方向上平移的距離。(2) 旋轉變換旋轉變換使圖元繞某點旋轉一定角度后,到達新位置,如圖2-2所示。逆時針旋轉時,旋轉角度為正,反之為負。 y p (x, y) p(x,y) x 圖 2-2旋轉變換 co
12、s sin 0 饒原點旋轉的變換矩陣為 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 cosy siny´= x sin+ y cos一. 點的變換圖元的變換可以歸結為點的變換,首先在position類中添加點的變換函數。) 平移變換移動后點的坐標值等于移動前點的坐標值與位移矢量的和。在position類中添加pntmove函數,該函數有兩個參數xx和yy,分別定義移動矢量的水平向分量和垂直向分量。在直角坐標系中,當xx或yy為正時,點向右、向上
13、移動;當xx或yy為負時,點向左、向下移動。函數返回一個position類實例,為移動后的點。(2) 旋轉變換旋轉一個點需要確定兩個參數,既旋轉的參照點和旋轉的角度。參照點指的是饒哪個點旋轉。在position類中添加pntrotate函數,定義點的旋轉行為。pntrotate函數有兩個參數,即basepos和angle分別定義旋轉參照點和旋轉角度。旋轉后點的坐標可以根據原理部分的計算公式獲得。,二. 圖元的變換1. 直線段的幾何變換(1) 直線段的平移變換直線段的平移變換實際上是對直線段的起點和終點作平移變換,然后將變換后的起點和終點用直線段相連接。在cline類模塊中添加cgelement
14、_move過程,定義直線段的平移變換。該函數有兩個參數,即basepos和despos,分別定義平移前后的相對位置。平移前直線段上任一點到basepos點的距離和方向與平移后直線段上對應點到despos點的距離和方向是相同的。兩個點橫坐標之間和縱坐標之間的差異分別表示橫向和縱向移動的距離和方向。'(2)直線段的旋轉變換通過旋轉直線段的起點和終點,可以實現直線段的旋轉。在cline類模塊中添加cgelement_rotate過程,該過程的兩個參數basepos和angle分別定義旋轉的基點和角度。2. 多義線的幾何變換(1)多義線的平移變換多義線的平移變換可通過平移多義線的頂點來實現。在
15、cpolyline類模塊中添加cgelement_move過程,以描述多義線的平移變換。(2)多義線的旋轉變換在cpolyline類模塊中添加cgelement_rotate過程,通過對多義線的頂點進行旋轉變換來實現多義線的旋轉變換。3. 圓的幾何變換(1)圓的平移變換 圓的平移動變換通過對圓的圓心和圓上一點進行平移變換類實現。在ccircle類模塊中添加cgelement_move函數,描述圓的平移變換。(2)圓的旋轉變換在ccircle類模塊中添加cgelement_rotate過程,通過對圓心和圓上一點進行旋轉變換來實現圓的旋轉變換。4. 圓弧的幾何變換1. 圓弧的平移變換在carc類模
16、塊中添加cgelement_move過程,實現圓弧的平移變換。(2)圓弧的旋轉變換在carc類模塊中添加cgelement_rotate過程,對圓弧的圓心、起點和終點進行旋轉變換。2.3 圖形變換交互功能的實現2.3.1 平移變換cmove類平移變換的交互過程通過cmove類來實現。該類利用鼠標單擊和移動事件代碼來描述各種圖元進行平移變換時的交互過程。該類實現了ccommand接口。2.3.2旋轉變換通過創建crotate類來進行描述。通過響應鼠標單擊和移動事件來用圖形顯示圖元旋轉的基點和角度。2.4 刪除圖元包括內存刪除和屏幕刪除兩部分。4.3圖元的拾取與選擇要實現上面的圖元的編輯首先要實現
17、圖元的拾取功能。圖元的拾取是指計算機識別圖元的方法。圖元的選擇是把已經識別的圖元單獨保存,以備修改和編輯。一.包圍矩形的計算包圍矩形指能包圍圖元的最小矩形。(1)直線段的包圍矩形直線段的包圍矩形是以直線段的起點和終點為對角頂點的矩形。為了提高拾取效率,通常要將直線段的包圍矩形向外擴展一定的距離如上圖。(2)多義線的包圍矩形多義線的包圍矩形由多義線的頂點坐標決定。以所有頂點中最小的橫坐標和最小的縱坐標所確定的點與最大的橫坐標與最大的縱坐標所確定的點為對角頂點的矩形為多義線的包圍矩形。(3)圓的包圍矩形圓的包圍矩形為正方形,是圓的外切矩形。包圍矩形的左下角坐標和右上角坐標由圓心坐標和圓的半徑確定。
18、左下角坐標為圓心坐標減去圓半徑,右上角坐標為圓心坐標加上圓半徑。 (4)圓弧的包圍矩形圓弧的包圍矩形是包圍圓弧的最小矩陣。計算圓弧的包圍矩形,需要計算圓弧與過圓心的坐標軸4個方向上的相交關系。因為圓弧與坐標軸正向或負向的交點坐標在數值上代表了這個方向上的最大值。如果相交,則包圍矩形在這個方向上的值便是該值。如果不相交,包圍矩形在這個方向上的最大值就是圓弧起點和終點x、y坐標的最大值。圓弧與4個軸的相交關系可以通過比較可能的交點與圓弧之間的關系得到。如果圓弧所在的圓與4個坐標軸的交點在圓弧內,則對應的交點便是圓弧與4個坐標軸的交點,否則不是。 (5)文本的包圍矩形 要獲取文本的包圍矩形,需要知道
19、文本的寬度和高度,以及文本插入點的位置。包圍矩形左下角的橫坐標為插入點的橫坐標,縱坐標為插入點的縱坐標減去文本的高度;右上角的橫坐標為插入點的橫坐標加上文本的寬度,縱坐標為插入點的縱坐標。i am the first 二.圖元的拾取(1)直線段的拾取如果拾取點落在直線段的包圍矩形內,則進一步判斷拾取點與直線段之間的距離。如果小于指定的容限值,則該直線段被拾取。(2)多義線的拾取如果組成對義線的任何一條直線段被拾取到,則多義線被拾取到。在cline類中添加cgelement_pick方法。(3)圓的拾取以圓的圓心為圓心,以圓的半徑加減r長度為半徑,得到一個包圍圓的環帶。如果鼠標點落在該環內,則圓
20、被拾取。圓拾取的實質是計算拾取點到圓心的距離。(4)圓弧的拾取圓弧的拾取分兩步。首先判斷圓弧所在的圓是否被拾取。如果沒有被拾取,則圓弧不被拾取;如果圓已經被拾取,則繼續判斷拾取點是否落在圓弧的范圍內。如果落在圓弧范圍內,則圓弧被拾取,否則不被拾取。(5)文本的拾取拾取標注文本,首先要判斷拾取點是否落在文本的包圍矩形中,如果在,則文本拾取。4.3 圖元的選擇一. 添加選擇集 為了存儲選中的圖元,需要添加圖元的選擇集。二. 逐個選擇圖元單擊某圖元時,如果該圖元被拾取,把它添加到相應的集合類進行保存,則該圖元被選擇。在繪圖環境中可以連續選擇多個圖元,并把它們放到選擇集中。 與圖元有關的菜單資源菜單項標題名稱逐類選擇selonebyone分類選擇selbyclass選擇直線段selline選擇多義線selplines選擇圓selcircles選擇selarcs選擇標注文本seltexts全選selall放棄全選selnone三. 分類選擇 一個圖形往往由多種不同的圖元組成,如果對某一類圖元感興趣,可以直接選擇該類圖元,并進行編輯。可通過selectges函數來實現。四. 全選全部選擇圖元,需要將全部圖元集合類中的圖元以選擇模式重繪,并放入選擇集。4.4 窗體的顯示控制(1)創建工程和窗體1frmlash窗體設計2. 啟動frmmain窗體時顯示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目管理執行能力試題及答案
- 2025年國內外投資環境的比較研究試題及答案
- 注會考生考前心理疏導技巧試題及答案
- 2024年項目管理資格考試考前準備的全景分析試題及答案
- 注冊會計師考試內容更新與變化分析試題及答案
- 橡皮壩河道清淤施工方案
- 貼心指導證券從業資格試題及答案
- 注冊會計師理論與實踐試題及答案
- 生物技術在生態修復工程中的應用考核試卷
- 2024年項目管理協作機制試題及答案
- 夜間施工措施
- YS/T 778-2011真空脫脂燒結爐
- GB/T 1229-2006鋼結構用高強度大六角螺母
- GA 137-2007消防梯
- 通用報價單模板
- 血精的診治課件
- 考研考博-英語-北京建筑大學考試押題三合一+答案詳解4
- 消防管道支架制作安裝標準2017.噴淋
- 合格供應商年度評審計劃
- 《三角形的分類》-完整版課件
- 吊裝安全心得體會(6篇)
評論
0/150
提交評論