用Visual Basic 開(kāi)發(fā)交互式CAD系統(tǒng)-VB編程畢業(yè)設(shè)計(jì)_第1頁(yè)
用Visual Basic 開(kāi)發(fā)交互式CAD系統(tǒng)-VB編程畢業(yè)設(shè)計(jì)_第2頁(yè)
用Visual Basic 開(kāi)發(fā)交互式CAD系統(tǒng)-VB編程畢業(yè)設(shè)計(jì)_第3頁(yè)
用Visual Basic 開(kāi)發(fā)交互式CAD系統(tǒng)-VB編程畢業(yè)設(shè)計(jì)_第4頁(yè)
用Visual Basic 開(kāi)發(fā)交互式CAD系統(tǒng)-VB編程畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、用Visual Basic 開(kāi)發(fā)交互式CAD系統(tǒng)內(nèi) 容 提 要在交互式CAD系統(tǒng)中,不僅可以實(shí)現(xiàn)用鼠標(biāo)繪圖, 還可以選擇圖元,并對(duì)選中的圖元進(jìn)行縮放、縮小、等操作。在眾多的交互式CAD開(kāi)發(fā)工具中,Visual Basic是使用最簡(jiǎn)單、應(yīng)用最廣泛、使用者最多的一種開(kāi)發(fā)工具,Visual Basic語(yǔ)言具備一定的繪圖功能。本設(shè)計(jì)的主要內(nèi)容是在學(xué)習(xí)Visual Basic 語(yǔ)言和交互式CAD技術(shù)的基礎(chǔ)上,運(yùn)用Visual Basic語(yǔ)言來(lái)開(kāi)發(fā)交互式CAD系統(tǒng)。本系統(tǒng)具有交互繪圖功能。能實(shí)現(xiàn)鼠標(biāo)繪圖,能對(duì)圖形進(jìn)行各種形式的縮放操作。本文中的縮放主要包括圖形的放大、縮小和局部放大與全屏顯示。關(guān)鍵詞: V

2、isual Basic 交互式CAD 縮放A b s t r a c tIn interactive CAD system, not only may realize with the mouse cartography, but also may choose the chart Yuan, and to the chart Yuan which selects carries on the reproduce by pantograph, reduces, and so on the operation. In the multitudinous interactive CAD devel

3、opment kit, Visual Basic is the use simple, the application is most widespread, the user most one kind of development kit, Visual Basic language has the certain cartography function. This design main content is in studies Visual the Basic language and in the interactive CAD technology foundation, la

4、nguage develops the interactive CAD system using Visual Basic. This system has the alternately cartography function. Can realize the mouse cartography, can carry on each kind of form to the graph the reproduce by pantograph operation. In this article reproduce by pantograph mainly includes the graph

5、 the enlargement, reduces with the fractionated gain and the entire screen demonstration.Key words: Visual Basic interactive CAD zooming 19目 錄一、緒言 4 二、開(kāi)發(fā)基礎(chǔ)5(一) 交互式CAD簡(jiǎn)介 5 (二) Visual Basic的簡(jiǎn)介 . 5 三、系統(tǒng)分析6(一) 可行性研究 .6(二) 需求分析 6四、系統(tǒng)總體設(shè)計(jì)8jhjhjhjhj五、詳細(xì)設(shè)計(jì)8(一)界面制作 .8(二)繪圖 . 9(三)縮放 . 11六、用戶手冊(cè)16七、結(jié)束語(yǔ) .17八、致謝

6、18九、參考文獻(xiàn)19一、緒 言在眾多的交互式CAD開(kāi)發(fā)工具中,Visual Basic是使用最簡(jiǎn)單、應(yīng)用最廣泛、使用者最多的一種開(kāi)發(fā)工具。Visual Basic功能強(qiáng)大是毫無(wú)疑問(wèn)的,所以本文采用Visual Basic進(jìn)行了交互式CAD系統(tǒng)的開(kāi)發(fā)。本文結(jié)合Visual Basic 語(yǔ)言介紹了交互式CAD 系統(tǒng)的開(kāi)發(fā)技術(shù),剖析了構(gòu)造系統(tǒng)的思路和技巧。本文的第一部分為開(kāi)發(fā)基礎(chǔ)部分,比較簡(jiǎn)單的介紹了交互式CAD和Visual Basic語(yǔ)言。第二部分為系統(tǒng)定義時(shí)期部分,介紹了系統(tǒng)的可行性研究與系統(tǒng)的硬件需求。第三部分主要分為兩部分:一個(gè)是總體設(shè)計(jì)部分,大略的介紹了所要開(kāi)發(fā)的交互式CAD系統(tǒng)的主要組

7、成部分。另一部分是詳細(xì)設(shè)計(jì)部分,這也是本文的主要核心部分。詳細(xì)的介紹了繪圖及圖形的縮放功能。第四是用戶手冊(cè)。 第五部分為后記部分。最后是第六部分參考文獻(xiàn)。二、開(kāi)發(fā)基礎(chǔ)(一) 交互式CAD簡(jiǎn)介對(duì)大多數(shù)人來(lái)說(shuō)交互式 CAD技術(shù)是一個(gè)熟悉而又陌生的概念 。那么,什么是交互式CAD技術(shù)呢?簡(jiǎn)單得打個(gè)比方來(lái)說(shuō):用鼠標(biāo)在屏幕上畫一條直線段,選種它時(shí),會(huì)在端點(diǎn)處顯示方形的手柄,移動(dòng)手柄,可以改變直線段的方位和長(zhǎng)度。由于采用這種技術(shù)繪圖具有方便、直觀、高效等特點(diǎn),所以在各種專業(yè)軟件,數(shù)據(jù)處理軟件、AutoCAD、 SolidWork、Flash、Visio、PowerPoint、Word等很多軟件里面有著廣泛

8、的應(yīng)用。 交互式CAD技術(shù)比一般的計(jì)算機(jī)繪圖技術(shù)要復(fù)雜一些。 在交互式CAD系統(tǒng)中, 不僅可以實(shí)現(xiàn)用鼠標(biāo)繪圖, 還可以選擇圖元,并對(duì)選中的圖元進(jìn)行縮放、縮小、等操作。交互式CAD技術(shù)是相對(duì)于一般技術(shù)而言的。交互設(shè)計(jì)的任務(wù)包括定位、定向、定量和移動(dòng)等等。交互設(shè)計(jì)的目的在于盡可能地站在用戶的角度考慮問(wèn)題,解決問(wèn)題。交互式設(shè)計(jì)應(yīng)該遵循的基本原則有以下七種:(1)盡量減少用戶輸入數(shù)據(jù)的工作量,盡可能提供缺省值。(2)容錯(cuò)功能要強(qiáng)。(3)數(shù)據(jù)輸入方便,并提供與其他軟件的數(shù)據(jù)交換接口。(4)比較完善的幫助系統(tǒng),包括聯(lián)機(jī)幫助、上下文幫助等。(5)操作過(guò)程記憶,包括恢復(fù)操作功能和重復(fù)操作功能。(6)繪圖過(guò)程的

9、可見(jiàn)性。利用橡皮線功能可以顯示圖元繪制的過(guò)程。(7)指令反饋速度快。如圖元拾取時(shí),系統(tǒng)必須比較快地做出反應(yīng);如果運(yùn)算比較費(fèi)時(shí),則可以在一定精度內(nèi)進(jìn)行近似計(jì)算。交互式CAD技術(shù)不僅在辦公軟件如:Word 、PowerPoint等軟件中均有大量的應(yīng)用而且在繪圖軟件如:AutoCAD、CoralDraw 等大量使用了交互式CAD技術(shù)。(二) Visual Basic的簡(jiǎn)介Visual Basic是一種功能非常強(qiáng)大的編程語(yǔ)言。一種在計(jì)算機(jī)技術(shù)發(fā)展史上應(yīng)用得最為廣泛的語(yǔ)言。自從Basic語(yǔ)言誕生以來(lái),就一直以其簡(jiǎn)單易學(xué)性而聞名于世,因而受到了廣大初學(xué)者的青睞。然而,由于它是非結(jié)構(gòu)化的編程語(yǔ)言,而且速度慢

10、、靈活性差,為此也受到了許多人的指責(zé)。很多人認(rèn)為,Basic語(yǔ)言是一種游戲語(yǔ)言或數(shù)學(xué)語(yǔ)言,不能用來(lái)開(kāi)發(fā)應(yīng)用程序。隨著Visual Basic 系列開(kāi)發(fā)環(huán)境的出現(xiàn),這一現(xiàn)象已經(jīng)成為過(guò)去。Visual Basic 保留了Basic早期的一些特性。Visual Basic 在原有的BASIC語(yǔ)言的基礎(chǔ)上進(jìn)一步發(fā)展,至今包含了數(shù)百條語(yǔ)句、函數(shù)及關(guān)鍵詞,其中很多和Windows GUI 有直接關(guān)系。在計(jì)算機(jī)領(lǐng)域,圖形編程是一個(gè)很重要的內(nèi)容。Visual Basic 作為一門功能強(qiáng)大的計(jì)算機(jī)語(yǔ)言,為用戶提供了一系列的屬性、方法和控件,利用它們,可以輕松地實(shí)現(xiàn)一般的圖形繪制。所以對(duì)于一般的圖形繪制任務(wù)而言,

11、Visual Basic是完全可以勝任的。三、系統(tǒng)分析(一) 可行性研究在問(wèn)題定義階段的結(jié)論進(jìn)一步復(fù)查和確認(rèn)之后,仔細(xì)分析了系統(tǒng)的處理過(guò)程,以后, 更進(jìn)一步的了解到本系統(tǒng)應(yīng)具體解決的問(wèn)題。整個(gè)系統(tǒng)的流程是在用戶的要求下進(jìn)行的,利用鼠標(biāo)事件所繪制的圖片顯示出來(lái)。并以用戶需求把它們隨意放大或縮小。Windows 消息與VB事件的轉(zhuǎn)換:Windows窗口程序事件對(duì)象消息Visual Basic對(duì)象 VB的模塊化結(jié)構(gòu):資源文件類模塊標(biāo)準(zhǔn)模塊窗體代碼窗體 (二)需求分析 在需求分析的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問(wèn)題。這一階段是對(duì)系統(tǒng)認(rèn)識(shí)最為全面、準(zhǔn)確、清晰、得體的一個(gè)比較關(guān)鍵的時(shí)期。需求

12、分析的結(jié)果是系統(tǒng)開(kāi)發(fā)的基礎(chǔ),也應(yīng)該是用戶基本上確定自己的最終要求階段,為下一步的總體設(shè)計(jì)打好基礎(chǔ)。一旦結(jié)束需求分析,整個(gè)系統(tǒng)的框架基本上就不應(yīng)該改變了,它關(guān)系到整個(gè)系統(tǒng)的成敗。.硬件運(yùn)行要求:為了讓交互式CAD系統(tǒng)能夠正常運(yùn)行,至少要具備以下的硬件要求具有486 66MHz處理器(或更高檔處理器)的IBM PC兼容機(jī) 一個(gè)鼠標(biāo) 足夠的硬盤空間,最好2GB的空間 16MB內(nèi)存 VGA或更高分辨率的監(jiān)視器軟件運(yùn)行要求:u Windows98操作系統(tǒng)或Windows 20XX 操作系統(tǒng)u Vb6.0系統(tǒng)盤VB系統(tǒng)的工作流程圖:獲得數(shù)據(jù)是退出嗎 處理信息 啟 動(dòng)退 出 是否 四、系統(tǒng)總體設(shè)計(jì)交互式CA

13、D系統(tǒng)的總體設(shè)計(jì)設(shè)計(jì)交互式CAD系統(tǒng)首先應(yīng)該具備一個(gè)控制系統(tǒng)的主控窗口,就是交互式CAD的界面。主控模塊分繪圖、編輯、縮放三個(gè)子模塊。我做的系統(tǒng)雖說(shuō)主要圍繞縮放功能,但也是以繪圖模塊所繪制的圖形來(lái)實(shí)現(xiàn),所以也是系統(tǒng)中必不可少的部分。第一個(gè)子模塊為繪圖部分,主要有直線、多義線、圓、圓弧。第二個(gè)子模塊為編輯部分。第三個(gè)子模塊為圖形的縮放部分,也是本系統(tǒng)所要重點(diǎn)設(shè)計(jì)的部分。所以在本論文當(dāng)中主要圍繞圖元的放大、縮小、 局部放大、全屏顯示這四個(gè)部分。 系 統(tǒng) 界 面局部放大全屏顯示編輯繪圖縮放縮小放大直線多義線圓弧 圓圖3-1系統(tǒng)的總體設(shè)計(jì)五、 詳細(xì)設(shè)計(jì)(一)界面制作界面制作首先要想一想要設(shè)計(jì)一個(gè)什么樣

14、的界面,而且還要遵循很多原則。比如有美學(xué)方面的,也有習(xí)慣方面的。在總體設(shè)計(jì)原則的指導(dǎo)下,充分考慮細(xì)節(jié)問(wèn)題 。(1)制作啟動(dòng)窗口實(shí)現(xiàn)交互繪制圖元,首先需要?jiǎng)?chuàng)建圖形的界面,然后再窗體模塊中添加事件代碼。在創(chuàng)建界面之前我在設(shè)計(jì)里添加了啟動(dòng)窗口。制作啟動(dòng)窗口:單擊工程菜單的添加窗體點(diǎn)擊添加窗體中的展示屏幕。屏幕上的內(nèi)容可以在屬性窗口中修改。(2)菜單設(shè)計(jì)我的設(shè)計(jì)里主要有繪圖、編輯、縮放等菜單。如總體設(shè)計(jì)中所示的這些菜單還有各自的子菜單。制作菜單首先在窗體中添加圖片框,在工具欄中打開(kāi) “菜單編輯器”,利用 “菜單編輯器”可以很方便的實(shí)現(xiàn)菜單的制作。繪圖菜單包括:“直線” “多義線” “圓弧” “圓”,它

15、們的標(biāo)題分別是“Line”“Polyline”“Circle”“Arc”和“Text”??s放菜單包括:“放大” “縮小”“局部放大” “全屏顯示”, 它們的標(biāo)題為“ZoomOut” “ ZoomIn” “LocalZoomOut”和“Extent”。(3)工具欄的設(shè)計(jì)工具條不僅使程序界面更加美觀,利用工具條上的工具按鈕,還能提高工作效率。狀態(tài)欄可以給出當(dāng)前命令的狀態(tài)、操作信息、提示和反饋信息,是計(jì)算機(jī)與用戶交互的一個(gè)重要窗口。所以要先創(chuàng)建工具條和狀態(tài)欄。創(chuàng)建工具條可以利用VB提供的Toolbar控件和ImageList控件,利用Statusbar控件可以創(chuàng)建狀態(tài)欄。在工具箱中單擊ImageLi

16、st控件,在窗體中添加控件ImageList打開(kāi)屬性頁(yè)對(duì)話框。對(duì)話框有三個(gè)對(duì)象分別是通用,圖像,顏色。在圖像選項(xiàng)卡中,打開(kāi)的對(duì)話框中選擇圖片的路徑和名稱,圖片將會(huì)顯示到圖片欄中(就如圖3-2所示)。 圖3-2圖像選項(xiàng)(4) 代碼設(shè)計(jì)制作菜單,工具條,狀態(tài)欄后,就給VB-CAD程序添加。首先給窗體添加ImageList控件ImageList1,添加Toolbar控件,用自定義屬性的“屬性頁(yè)”對(duì)話框建立與ImageList1控件的聯(lián)系。添加這些控件之后,添加控件的事件代碼。系統(tǒng)運(yùn)行后的界面如圖3-3和圖3-4圖3-3主界面 圖3-4窗口模板(二)繪圖代碼設(shè)計(jì)圖3-5 “繪圖”菜單繪圖在CAD系統(tǒng)是

17、必不可少的。我只做了直線、多義線、圓、圓弧四個(gè)選項(xiàng)。繪圖離不開(kāi)坐標(biāo)系統(tǒng)。因?yàn)樵赩B中,只有缺省坐標(biāo)和自定義坐標(biāo)兩個(gè)概念。其中,缺省坐標(biāo)的原點(diǎn)在于窗口的左上角,橫坐標(biāo)向右為正; 縱坐標(biāo)向下為正。交互式CAD系統(tǒng)可以實(shí)現(xiàn)用鼠標(biāo)交互式地輸入數(shù)據(jù)。采用面向?qū)ο蟮木幊碳夹g(shù),需要首先創(chuàng)建一個(gè)圖元系列類和一個(gè)命令系列類。定義繪圖時(shí)的交互過(guò)程。定義好類以后,再定義類的屬性及調(diào)用類的方法就可以進(jìn)行交互繪圖了。交互式鼠標(biāo)的繪圖行為,可以在屏幕上移動(dòng)鼠標(biāo)光標(biāo),并根據(jù)光標(biāo)處的坐標(biāo)進(jìn)行繪圖。這樣整個(gè)繪圖過(guò)程就簡(jiǎn)單多了,而且也可以隨用戶的意愿來(lái)決定繪圖的大小或長(zhǎng)度等。用鼠標(biāo)事件,單擊鼠標(biāo)左鍵時(shí),開(kāi)始繪圖:Public S

18、ub LeftButton(X As Single As Single);bolDraw=True單擊鼠標(biāo)右鍵時(shí),取消繪圖:Public Sub LeftButtonDown(X As Single,Y As Single);bolDraw=False(1) 直線用Line 方法繪制語(yǔ)法: Object.LineStep(x1,y1)Step(x2,y2),color,BF其中,object:(可選)對(duì)象表達(dá)式。如果object省略,具有焦點(diǎn)的窗體作為object。Stept:(可選)是關(guān)鍵字,指定起點(diǎn)坐標(biāo),相對(duì)于CuttentX和 CurrentY 所提供的的當(dāng)前圖標(biāo)坐標(biāo)。x1,y1: (可

19、選)Single,直線的起點(diǎn)坐標(biāo)。ScaleMode屬性決定了使用的度量單位。如果省略,線起始于由CurrentX和CurrentY指定的位置。(2) 多義線是由多條直線組成,所以與繪制直線是同一個(gè)道理。多義線用Line 方法將多義線的各個(gè)頂點(diǎn)一次連線。(3) 繪制圓形使用Circle函數(shù)。語(yǔ)法 :object.CircleStept(x,y),radius,color,start,end,aspect其中,object:(可選)對(duì)象表達(dá)式。如果object省略,具有焦點(diǎn)的窗體作為object。Stept:(可選)是關(guān)鍵字,指定圓的中心,相對(duì)于object的CuttentX和 CurrentY

20、 所提供的坐標(biāo)。x,y: (必須寫)Single 圓的中心坐標(biāo)。Object的ScaleMode屬性決定使用的度量單位。radius:(必須選)Single,圓的半徑。Object的ScaleMode屬性決定使用的度量單位。Start,end:(可選)SingleAspect: (可選)Single,圓的縱橫尺寸比。缺省值為1.0(4) 圓弧繪圓弧比起繪圓要復(fù)雜一點(diǎn),本系統(tǒng)采用圓心起點(diǎn)和終點(diǎn)繪制圓弧,除了需要知道圓心以外,還要知道圓弧的起點(diǎn)的終點(diǎn)的坐標(biāo)。語(yǔ)法:object.CircleStept(x,y),radius,color,start,end,aspect用Circle 方法繪圓弧時(shí),

21、需要知道圓弧的起點(diǎn)和終點(diǎn)與圓心連接和X軸正向所成的角度。圓弧的半徑可以根據(jù)圓心與起點(diǎn)的距離得到。Start和end分別指定弧的起點(diǎn)和終點(diǎn)相對(duì)于中心點(diǎn)的連線與X軸正向所成的角度,用弧度表示。范圍在-2*pi()到2*pi()之間,缺省時(shí)為0。返回點(diǎn)pBegin 到點(diǎn)pEnd的連線與X軸正向的夾角,用弧度表示。如果重點(diǎn)坐標(biāo)大于、等于起點(diǎn)坐標(biāo)。并且終點(diǎn)坐標(biāo)大于、等于起點(diǎn)坐標(biāo) If pEnd.x=pBegin.x And pEnd.y=pBegin.y ThenGetAngle=sita如果終點(diǎn)橫坐標(biāo)小于、等于起點(diǎn)橫坐標(biāo),并且終點(diǎn)縱坐標(biāo)大于、等于起點(diǎn)縱坐標(biāo)ElseIf pEnd.x=pBegin.y

22、ThenGetAngle=PI-sita如果終點(diǎn)橫坐標(biāo)小于、等于起點(diǎn)橫坐標(biāo),并且終點(diǎn)縱坐標(biāo)小于、等于起點(diǎn)縱坐標(biāo)ElseIf pEnd.x= pBegin.x And pEnd.y=pBegin.y ThenGetAngle=PI+sita如果終點(diǎn)橫坐標(biāo)大于、等于起點(diǎn)橫坐標(biāo),并且終點(diǎn)縱坐標(biāo)小于、等于起點(diǎn)縱坐標(biāo)ElseIf pEnd.x= pBegin.x And pEnd.y=pBegin.y ThenGetAngle=2*PI-sitaEnd if計(jì)算圓弧的起始點(diǎn):Angle1=GetAngle(m_pCenter,m_pBegin)計(jì)算圓弧終止角:Angle2=GetAngle(m_pCen

23、ter,m_pEnd)(三)縮放代碼設(shè)計(jì) 圖3-6 “縮放”菜單在繪圖和審圖過(guò)程中,常常有對(duì)圖形進(jìn)行縮小或放大的要求。實(shí)現(xiàn)各種方式的縮小和放大功能通過(guò)調(diào)節(jié)繪圖環(huán)境的ScaleLeft, ScalaTop, ScaleWidth 和ScaleHeight屬性或者利用Scale方法可以實(shí)現(xiàn)圖形畫面的縮小、放大??s放菜單項(xiàng)中各項(xiàng)的標(biāo)題為“ ZoomOut” ,“ZoomIn”,“ LocalZoomOu”和“ Extent”。(1) 全局縮放通過(guò)放大或縮小Scale 方法的參數(shù)來(lái)實(shí)現(xiàn)。原理:就是將視口矩形4個(gè)角點(diǎn)的坐標(biāo)放大一定的倍數(shù),視口內(nèi)的圖形將以相應(yīng)的倍數(shù)縮小。相反,將視口矩形4個(gè)角點(diǎn)的坐標(biāo)縮小

24、一定倍數(shù),視口內(nèi)的圖形以相應(yīng)的倍數(shù)放大。全局圖形縮小或放大都由改變坐標(biāo)系統(tǒng)來(lái)實(shí)現(xiàn)。 全局縮小圖形Private Sub ZoomIn_Click() SLeft=sLeft*1.2 以120XX比例放大sRight=sRight*1.2sTopic=sTopic*.2sBottom=sBottom*1.2修改坐標(biāo)系統(tǒng)Call CoordinateEnd Sub全局放大圖形Private Sub ZoomOut_Click() sLeft=sLeft*0.8 以80%的比例縮小 sRight=sRight*0.8 sTopic=sTopic*0.8 sBottom=sBottom*0.8 改變坐

25、標(biāo)系統(tǒng)Call CoordinateEnd Sub上面兩個(gè)過(guò)程中都要調(diào)用Coordinate過(guò)程,該過(guò)程利用坐標(biāo)參數(shù)Scale方法修改坐標(biāo)系統(tǒng),并通過(guò)控制視口范圍來(lái)實(shí)現(xiàn)圖形的縮放操作。Coordinate 過(guò)程的代碼:Public Sub Coordinate()利用Scale方法修改坐標(biāo)系統(tǒng)DrawMain.picDraw.Scale(sLeft,sTopic)-(sRight,sBottom)更新繪圖環(huán)境DrawMain.picDraw.RefreshEnd Sub 圖3-7原始圖形 圖3-8全局放大和全局縮小結(jié)果(2) 局部放大當(dāng)希望更清楚地了解圖形的某個(gè)細(xì)節(jié)部位時(shí),可以采用局部放大技術(shù)

26、,把包含該部位的一個(gè)矩形范圍放大到整個(gè)繪圖環(huán)境。如圖3-9所示,要把E點(diǎn)和G點(diǎn)確定的矩形放大到整個(gè)繪圖環(huán)境,需要把E點(diǎn)與屏幕左上角A點(diǎn)對(duì)齊,然后按照一定比例放大圖形,使矩形內(nèi)的圖形正好全部顯示在視口內(nèi)。放大的比例包括X方向的比例和Y方向的比例,若不改變圖元的形狀,并且矩形EFGH內(nèi)的所有圖元能在矩形ABCD中顯示,放大比例只能取X方向比例和Y方向比例中的小者。A B A E B F E FG H E F G HC D C G D H 圖3-9局部放大的原理圖示實(shí)現(xiàn)局部放大先選取用戶所要放大的部分,那么這個(gè)部分就用矩形來(lái)選取,用Line 方法繪矩形;而且無(wú)論放大或縮小都要計(jì)算新坐標(biāo)系與邏輯坐標(biāo)系

27、的縮放比例因子;然后重新設(shè)置視口范圍之后,就是局部放大的效果了;創(chuàng)建CviewLocalZoomOut 類,并添加一些相關(guān)的代碼。然后像處理前面各繪圖類一樣,在窗體模塊中添加相對(duì)應(yīng)的鼠標(biāo)事件處理代碼。 在該類中主要實(shí)現(xiàn)選取局部放大的功能。選取行為在移動(dòng)鼠標(biāo)的過(guò)程中產(chǎn)生,放大行為在鼠標(biāo)左鍵第二次擊下的那一時(shí)刻才產(chǎn)生。就像圖3-10和3-11所示矩形窗口圖3-10用矩形窗口選擇所要放大的局部范圍圖3-11 局部放大的效果(3) 全屏顯示全屏顯示是要在繪圖環(huán)境中剛好顯示所有圖元。實(shí)際上,它是局部放大的一個(gè)特例。就如圖(3-12)所示,把矩形EFGH中的圖形元素正好全部顯示在ABCD矩形區(qū)域中。所有圖

28、元的包圍矩形可以通過(guò)比較所有圖元各自的包圍矩形得到。所有圖元包圍矩形對(duì)角定點(diǎn)的最小橫坐標(biāo)和最小縱坐標(biāo)可以確定一個(gè)點(diǎn),最大橫坐標(biāo)和最大縱坐標(biāo)可以確定另一個(gè)點(diǎn),由兩點(diǎn)所確定的矩形就是要求的包圍矩形。ADCBEHGFEDCAFHGA B圖3-12顯示全圖的原理 圖3-13原圖 圖3-14 全屏顯示的結(jié)果 六、用戶手冊(cè)運(yùn)行系統(tǒng),會(huì)出現(xiàn)一個(gè)界面就如下面所示的圖-用戶界面。分別有菜單欄、工具欄、狀態(tài)欄就是顯示窗口。全屏顯示菜單放大繪圖工具窗口繪圖區(qū)局部放大縮小工具欄那么這個(gè)系統(tǒng)應(yīng)該如何使用?首先在執(zhí)行縮放功能之前,要在窗口中利用四個(gè)繪圖工具中四個(gè)工具按鈕任意繪制幾個(gè)圖。本系統(tǒng)用的是交互式的繪圖技術(shù),所以在窗體中用鼠標(biāo)繪制圖形。而且其他功能都使用的是鼠標(biāo)事件,所以直接用鼠標(biāo)點(diǎn)擊所需要的工具來(lái)執(zhí)行其功能。若要使用放大工具,就直接點(diǎn)擊工具欄中的放大工具按鈕。并在窗口中點(diǎn)擊,就會(huì)把已繪制好的圖形放大。縮小工具的使用和放大工具一致。全屏顯示的原理雖然和局部放大原理差不多,但是使用方法和放大、縮小是一樣的。使用局部放大工具,就在用戶想要放大的部位拖動(dòng)鼠標(biāo)就會(huì)出現(xiàn)矩形,第二次單擊鼠標(biāo)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論