小型繪圖系統文檔_第1頁
小型繪圖系統文檔_第2頁
小型繪圖系統文檔_第3頁
小型繪圖系統文檔_第4頁
小型繪圖系統文檔_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

131vc小型繪圖系統樣本

(樣本只提供該系統的基本情況介紹,若需要完整的設計和論文,建議您購買本系統,凡是購買本站系統的,本站均根據您的要求,把系統上的開發信息,題目等修改成符合您的要求)

本系統開發工具:VC

本設計包含內容:源代碼+畢業論文+開題報告+答辯稿

論文大概:

摘要

本文較深入的研究了WINDOWS下繪圖,算法,圖形的保存方法,DXF文件的轉換。利用visualc++6.0開發工具實現了繪制直線,圓弧,圓,矩形,圖形的自定義文件格式保存,DXF格式的保存,AutoCAD圖形保存DXF文件格式的在小型圖形系統中的顯示。

關鍵詞:

小型繪圖系統;繪圖;算法,保存;轉換;vc++

Abstract

“圖”是物體透射光或反射光的分布,“形”是人的視覺系統對圖的接收在大腦中形成的印象或認識。圖形是兩者的結合。人類獲取外界信息是靠聽覺、視覺、觸覺、嗅覺、味覺等,但絕大部分(約200%左右)來自視覺所接收的圖形信息。眾所周知,計算機已成為快速、經濟的生成圖片的強大工具。實際上已經沒有哪個領域不能從使用圖形顯示中獲益,因此也就不會奇怪為什么計算機圖形學的應用是那么的廣泛,同時計算機繪圖技術發展越來越快,應用范圍越來越廣,計算機圖形學在藝術領域中的應用成效也越來越顯著,除了廣泛用于藝術品的制作,還成功的用來制作廣告、動畫片,甚至電視電影。

VC++代表了基于Windows的C++語言產品,它完美地集成了傳統的編程工具,如編譯器、編輯器、調試器和原代碼剖析器。同時,它也集成了Windows中特殊的工具箱,如MFC(MicrosoftFoundationClasses)和Windows資源編輯器(AppStudio)。另外還加入了幾種新工具,如輪廓應用程序生成器(AppWizard)、C++類管理器(ClassWizard)和類瀏覽器(ClassBrowser),以及各種各樣為開發MicrosoftWindows下的C/C++程序而設計的工具。這些工具給我們的編程帶來了極大的方便。MFC類庫為我們提供了豐富的類資源,特別是MFC類庫中提供的繪圖類中提供了幾乎所有的繪圖函數,功能非常全,為我們進行圖形設計提供了豐富的資源,用VC++語言進行繪圖程序設計具有明顯的優越性,一般圖形都有層次結構,任何復雜的圖形均可用簡單圖素描述。而VC++語言具有指針、結構等豐富的數據類型,同時它的面向對象程序設計方法使圖素模塊(或繪圖模塊)之間的關系更加清晰,便于對圖形進行修改、刪除、插入等操作。圖映射到正方體、杯、瓶等器皿的表面,形成美麗奧妙的圖案。

隨著CAD與CAM技術的不斷發展,DXF文件作為一種通用格式在CAD與CAM之間傳遞應用,但由于不同軟件之間的結構或處理方式的差異,使得DXF文件在讀取中經常會出現一些不方便之處。小型圖形系統的目的是為了能夠讓DXF文件和自定義文件之間相互轉換,以方便用戶使用不同的軟件打開DXF文件,同時也可以將自定義的文件類型轉換為DXF類型,用CAD打開,方便使用。

第一章計算機圖形學的發展計算機圖形學是隨著計算機及其外圍設備而產生和發展起來的。它是近代計算機科學與雷達、電視及圖形處理技術的發展匯合而產生的碩果。在造船、航空航天、汽車、電子、機械、土建工程、地理信息、輕紡化工等領域中的廣泛應用,推動了這門學科的不斷發展,而不斷解決應用中提出的各類新課題,又進一步充實和豐富了這門學科的內容。計算機出現不久,為了在繪圖儀和陰極射線管(CRT)屏幕上輸出圖形,計算機圖形學隨之誕生了。現在它已發展成對物體的模型和圖形進行生成、存取和管理的新學科。

計算機圖形學軟件的發展

隨著計算機系統、圖形學硬件、圖形輸入輸出設備的發展,計算機圖形軟件及其生成、控制圖形的算法也有了很大的發展。概括起來有以下三種:

(一)用現有的某種計算機語言寫成的子程序包。

用戶使用時按照相應的計算機語言的規定調用所需要的子程序生成各種圖形。如GKS,PHIGS,GL等,這種類型的圖形軟件基本上是一些計算機語言寫成的子程序集。在這類程序包的基礎上開發的圖形程序有便于移植和推廣的優點,但執行速度相對較慢,效率低。

(二)擴充某一種計算機語言,使其具有圖形生成的處理功能。

目前具有圖形生成和處理的計算機語言很多,如:AutoLisp,TurboC等,對解釋型語言,這類功能的擴充還方便些。對編譯型的語言,擴充圖形功能的工作量較大,且不具備可移植性,這類語言寫的圖形軟件比較簡練、緊湊、執行速度也較快。

(三)專用的圖形系統。

對與某一種類型的設備,可以配置專用的圖形生成語言。如果要求簡單,可以采用在多功能子程序包的基礎上加上命令語言的方式。如果需要配置一個具有綜合功能的較為復雜的圖形生成語言,又要求有較快的執行速度,則應開發或配置一個完整的編譯系統。比起簡單的命令語言,它具有更強的功能;比起子程序包,它的執行速度更快、效率更高。但系統開發工作量大,且移植性較差。

計算機圖形學算法的發展

計算機圖形學所涉及的算法是非常豐富復雜的,圍繞著生成、表示物體的圖形的準確性、真實性和實時性,其算法大致可以分為以下幾類:

(一)基于圖形設備的基本圖形元素的生成算法,如用光柵圖形顯示器生成直線、圓弧、二次曲線、封閉邊界內的填色,填圖案、反走樣等。

(二)基本圖形元素的幾何變換、投影變換、窗口剪裁等。

(三)圖形元素(點、線、環、面、體)的求交與分類以及集合運算。

(四)自由曲線和曲面的插值、擬合、拼接、分解、過渡、整體與局部修改等。

(五)隱藏線、面消除以及具有光照顏色效果的真實圖形顯示。

(六)不同的字體的點陣表示,矢量中、西文字符的生成及變換。

int

m_numH;

//水平方向像素數目

int

m_numV;

//垂直方向像素數目

BOOL

m_isBeEditting;

//文檔正在編輯標志

BOOL

m_isAllowEdit;

//文檔允許編輯標志

BOOL

m_isEdittingNewLine;//正在畫線標志

BOOL

m_bModified;

//原文檔被修改標志

ZSymbol

m_symbol;

//圖形保存對象

BOOL

m_bDrawCircle;

//畫圓

BOOL

m_bDrawArc;

//畫弧

BOOL

m_bDrawLine;

//線段

BOOL

m_bDrawRectangle;

//矩形

CPoint

m_ptOriginal;

//開始點

4。鏈表

CList<CRect,CRect&>m_tempLines;//所有單線段的集合

CList<stCIRCLE,stCIRCLE&>m_ListCircle;

CList<stARC,stARC&>m_ListArc;

CList<CRect,CRect&>m_tempFillLines;

(二)圖形算法

建立起始點和結束點

左鍵點擊建立圖形對象起始點,由變量m_isEdittingNewLine控制1.線的算法

m_pRect=newCRect(Startpoint,Endpoint)

記錄線段的起始點和終點

m_tempLines.AddTail(*m_pRect);

加入線段鏈表中

2.矩形的算法

始點和終點和終點之間的距離是矩形的對角線,矩形由四個線段組成

m_pRect=newCRect(ptStartGrid.x,ptStartGrid.y,ptEndGrid.x,ptStartGrid.y);

m_tempLines.AddTail(*m_pRect);

m_pRect=newCRect(ptEndGrid.x,ptStartGrid.y,ptEndGrid.x,ptEndGrid.y);

m_tempLines.AddTail(*m_pRect);

m_pRect=newCRect(ptEndGrid.x,ptEndGrid.y,ptStartGrid.x,ptEndGrid.y);

m_tempLines.AddTail(*m_pRect);

m_pRect=newCRect(ptStartGrid.x,ptEndGrid.y,ptStartGrid.x,ptStartGrid.y);

m_tempLines.AddTail(*m_pRect);

3.圓的算法

圓心點和直徑決定一個圓的位置和大小

in

第五章圖形自定義文件格式的保存和算法

圖形的保存由繼承CObject類ZSymbol來實現,算法基本思路是將所有的圖形要素放入數組結構ZGRAPH中,保存時調用成員函數Serialize序列化。

(一)序列化

序列化(serialize)指的是應用程序把數據對象以文件的形式存入永久性儲存體(簡單說來就是硬盤)以后,還能讀取出來,并在內存中還原的機制.

可序列化的對象稱為永久性對象.永久性對象必須具備這樣一種能力:能提供描述自身的信息.一個可串行化對象的條件為:

?

這個類從CObject派生

?

該類實現了Serialize函數

?

該類在定義時使用了DECLARE_SERIAL宏

?

在類的實現文件中使用了IMPLEMENT_SERIAL宏

?

這個類有一個不帶參數的構造函數,或者某一個帶參數的構造函數所有的參數都提供了缺省參數

Serialize()是MFC規定的對磁盤進行讀寫操作的函數,是由CObject類提供的一個虛函數,它的原型是virtualvoidSerialize(CArchive&ar).在文檔/視圖框架結構中,數據一般由文檔對象來管理,所以每當進行新建、打開、保存操作時,都會自動調用文檔類的Serialize().

CArchive類重載了插入<<和提取>>運算符.

例如:

需要保存一個circle,則創建一個circle類,從CObject派生,

溫馨提示

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

評論

0/150

提交評論