freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于gdi2d圖形軟件開發(fā)方法初探-2d幾何畫板畢業(yè)論文-資料下載頁

2025-06-25 18:26本頁面

【導(dǎo)讀】2D幾何畫板的開發(fā),主要是研究GDI+技術(shù)在二維圖形軟件中的開發(fā)方法的探索。重復(fù)操作圖元;圖元的存儲、選取、修改,實現(xiàn)圖元的動態(tài)性,如選中對象時可以拖動,響;還可以精確的定位相關(guān)對象的相關(guān)屬性,如圓的半徑,曲線的張力等。函數(shù)圖形繪制模塊,序列化模塊的設(shè)計。本人所呈交的畢業(yè)論文(設(shè)計)是我在導(dǎo)師的指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。對本論文(設(shè)計)的研究做出重要貢獻(xiàn)的個人和集體,均已在文中作了明確說明。有權(quán)將論文(設(shè)計)用于非贏利目的的少量復(fù)制并允許論。文(設(shè)計)進(jìn)入學(xué)校圖書館被查閱。保密的論文(設(shè)計)在解密后適用本規(guī)定。論文正文字?jǐn)?shù)不少于萬字。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準(zhǔn)用徒手畫

  

【正文】 邊的相等性。 等邊三角形的繪制方法如圖 所示: 5 圖形繪制模塊設(shè)計 33 圖 等邊三角形繪制方法 由上面的代碼可知,等邊三角形的第三關(guān)鍵點是在繪制時動態(tài)確定的,即如圖 所示: 圖 等邊三角形關(guān)鍵點的繪制方法 繪制等邊三角形時按下鼠標(biāo)左鍵時的響應(yīng)代碼如圖 : 圖 等邊三角形按下鼠標(biāo)左鍵的響應(yīng)代碼 按著鼠標(biāo)左鍵并拖動鼠標(biāo)時的響應(yīng)代碼如圖 所示: 圖 移動鼠標(biāo)的實現(xiàn)方法 直角三角形 直角三角形是特殊的三角形,是三角形的一個特例。實現(xiàn)直角三角形類時,從三角形類派生。直角三角形具有三角形的所有特性,并具有一個角是直角的特性。在繪制時始終保持其中一個角是直角。 在繪制直角三角形時,按下鼠標(biāo)左鍵時確定第一個關(guān)鍵點,然后按著鼠標(biāo)左鍵并拖動鼠標(biāo),可以動態(tài)觀察在直角三角形的形狀,釋放鼠標(biāo)時確定第二關(guān)鍵點,完成直角三 34 角形的繪制。第三個關(guān)鍵點是動態(tài)確定的,利用三角函數(shù)來動態(tài)計算出第三個關(guān)鍵點,并計算出相應(yīng)的直角。 直角三角形的繪制方法如圖 所示: 圖 直角三角形的繪制方 法 繪制直角三角形時按下鼠標(biāo)左鍵時響應(yīng)代碼如圖 所示: 圖 鼠標(biāo)左鍵活動響應(yīng)代碼 按著鼠標(biāo)左鍵并拖動鼠標(biāo)時的響應(yīng)代碼如圖 所示: 圖 拖動鼠標(biāo)響應(yīng)代碼 帶外接圓的三角形 過三角形三個頂點確定的圓稱為三角形的外接圓,任意三角形都有外接圓。帶外接圓的三角形在繪制三角形時動態(tài)的計算出相應(yīng)外接圓的圓心坐標(biāo)和半徑,并繪制出相應(yīng)的外接圓。 三角形的外接圓圓心,即外心,是三角形三邊的垂直平分線的交點,它到三個頂點的距離相等 。 由三角形三個頂點來確定三角形的外心(即三角形外接圓圓心 )的計算方法如圖 所示: 5 圖形繪制模塊設(shè)計 35 圖 三角形外接圓繪制方法 三角形外接圓圓心確定后,就可以根據(jù)三角形外接圓的性質(zhì),外接圓圓心到三個頂點的距離相等,根據(jù)勾股定理可以計算出其相應(yīng)外接圓的半徑,計算方法如圖 所示: 圖 外接圓半徑計算方法 帶外接圓的三角形的繪制方法如圖 所示: 圖 帶外接圓的三角形繪制方法 繪制帶外接圓的三角形時按下鼠標(biāo)左鍵時的響應(yīng)代碼如圖 所示: 36 圖 繪制帶外接圓的三角形時按下鼠標(biāo)左鍵時的響應(yīng)代碼 按下鼠標(biāo)左鍵并拖動時的響應(yīng)代碼如 圖 所示: 圖 按下鼠標(biāo)左鍵并拖動時的響應(yīng)代碼 任意多邊形 任意多邊形是可以根據(jù)需要來確定多邊形的邊數(shù),在實現(xiàn)時采用一個數(shù)組鏈表來保存相應(yīng)多邊形的頂點。 繪制任意多邊形時,由鼠標(biāo)左鍵按下的次數(shù)來確定多邊形的頂點數(shù),并在移動鼠標(biāo)時動態(tài)的繪制出相應(yīng)的多邊形形狀,當(dāng)雙擊鼠標(biāo)左鍵時,確定多邊形的頂點數(shù),完成多邊形的繪制。 任意多邊形的繪制方法如圖 所示: 5 圖形繪制模塊設(shè)計 37 圖 任意多邊形的繪制方法 在操作類型為選取時,可以選取繪制好的多邊形,改變相應(yīng)關(guān)鍵點的屬性,移動多邊形。其選取時的響應(yīng) 方法如圖 所示: 圖 操作類型為選取時的響應(yīng)方法 移動多邊形時的響應(yīng)方法如圖 所示: 38 圖 移動多邊形時的響應(yīng)方法 文字 文字標(biāo)記是對相應(yīng)對象進(jìn)行標(biāo)記,對相關(guān)信息進(jìn)行標(biāo)注。當(dāng)進(jìn)行文字標(biāo)記時,點擊鼠標(biāo)左鍵確定文字標(biāo)記的左上角坐標(biāo),將相應(yīng)文字標(biāo)記由些坐標(biāo)開始進(jìn)行繪制。 在文字標(biāo)記的繪制過程中,當(dāng)單擊鼠標(biāo)左鍵時,在確定文字標(biāo)記左上角坐標(biāo)時,也彈出一個文字輸入框,在此文字輸入框中輸入相關(guān)的文字標(biāo)記,按確定后完成文字標(biāo)記的繪制。 文字標(biāo)記的繪制方法如圖 所示: 圖 文字標(biāo)記的繪制方法 當(dāng)操作類型為選取時,可以對文字標(biāo)記進(jìn)行移動,編輯等操作,其移動響應(yīng)方法如圖 所示: 5 圖形繪制模塊設(shè)計 39 圖 選取的響應(yīng)方法 編輯響應(yīng)方法如圖 所示: 圖 編輯響應(yīng)方法 曲線 曲線是具有張力的一系列相連的點。曲線的張力提供了它的平滑度和移動角?;鶖?shù)樣條是一系列相連的曲線。在一條曲線中,兩個點之間基本上都不存在直線。 曲線有兩種類型:開放曲線和封閉曲線。封閉起始點和結(jié)束點為同一個點的曲線,除封閉曲線之外的曲線稱為開放曲線。 對曲線的繪制,可以改變張力的大小,不 同的張力可以讓曲線有不一樣的平滑度和移動角。在繪制中,曲線由四個關(guān)鍵點和一個張力確定。 繪制曲線的響應(yīng)方法如圖 所示: 圖 繪制曲線的響應(yīng)方法 繪制曲線時鼠標(biāo)按下時的響應(yīng)代碼如圖 所示: 40 圖 繪制曲線時鼠標(biāo)按下時的響應(yīng)代碼 移動曲線時的響應(yīng)方法如圖 所示: 圖 移動曲線的響應(yīng)方法 選取 對已繪制的對象,可以進(jìn)行選取,以改變相關(guān)屬性,對選取的對象進(jìn)行移動,刪除等操作。 當(dāng)操作類型為選取時,鼠標(biāo)按下時的響應(yīng)代碼如圖 所示: 5 圖形繪制模塊設(shè)計 41 圖 鼠標(biāo) 按下時的響應(yīng)代碼 鼠標(biāo)拖動時的響應(yīng)代碼如圖 所示: 圖 鼠標(biāo)拖動時的響應(yīng)代碼 42 6 2D 函數(shù)圖形繪制模塊設(shè)計 43 6 2D 函數(shù)圖形繪制模塊設(shè)計 基于《 GDI+》 2D 圖形軟件開發(fā)方法初探 — 2D幾何畫板的一個重要功能是能夠繪制直角坐標(biāo)系函數(shù)的圖形,并可以分區(qū)間的查看函數(shù)的特性。對于一些復(fù)雜的二維函數(shù)圖形,很難用手工的方法繪制出來,用 2D 幾何畫板可以方便的繪制出來,并研究其在不同區(qū)間圖像的特性。 實現(xiàn)原理 繪制二維函數(shù)圖形,首先給定二維函數(shù)的表達(dá)式,然后設(shè)定相應(yīng)的區(qū)間,最后由 2D幾何畫板根據(jù)相應(yīng)的信息繪制出相應(yīng)的 圖形。 2D 幾何畫板除了支持基本的符號組成的函數(shù)表達(dá)式外,還支持不同的數(shù)學(xué)函數(shù)表達(dá)式,如 sqrt(x)、 sin(x)等。 在實現(xiàn)二維函數(shù)圖形的繪制時,函數(shù)表達(dá)式通過函數(shù)公式分析器,分解出相應(yīng)的信息,然后由設(shè)定的區(qū)間確定繪制區(qū)間,并由確定的繪制點數(shù),計算出相應(yīng)的關(guān)鍵點,由這些關(guān)鍵點來決定相應(yīng)函數(shù)的圖形,繪制出相應(yīng)的圖形。 公式分析器 公式分析器是二維函數(shù)圖形核心部分,主要負(fù)責(zé)對輸入的二維函數(shù)表達(dá)式的分析,公式分析器在實現(xiàn)中設(shè)計為一個單獨(dú)的類,傳入一個字符串表達(dá)式,返回一個雙精度的值。其實現(xiàn)代碼片段由圖 : 圖 公式分析器實現(xiàn)代碼 44 在 2D 幾何畫板中,支持的操作符如下所示: +, , *, /, ^, % 支持的函數(shù)表達(dá)式如下所示: sqrt, sin, cos, tan, atan, acos, asin, acotan, exp, ln, 10log, fac, sinh, cosh,tanh, abs, ceil, floor, sfac, round, fpart 對于函數(shù)表達(dá)式中的符號,采用哈希表來存儲。設(shè)計實現(xiàn)代碼如圖 : 圖 符號的實現(xiàn)方法 對函數(shù)表達(dá)式的語法分析, 是公式分析器的核心。語法分析方法是對表達(dá)式有效性的檢驗, Syntax( String exp )是實現(xiàn)語法分析的方法,其實現(xiàn)代碼如圖 所示: 6 2D 函數(shù)圖形繪制模塊設(shè)計 45 圖 語法分析方法的響應(yīng)代碼 公式分析器方法聲明如表 所示: 表 公式編輯器方法聲明 方法名 參數(shù) 返回值 功能 matchParant String bool 表達(dá)式有效性檢查(括號的匹配) isAlpha char bool 檢查當(dāng)前字符是否是英文字母 isVariable String bool 表達(dá)式有效性檢查(變量) isConstant char bool 檢查當(dāng)前字符是否是數(shù)字 isConstant String bool 檢查當(dāng)前字符串是否是數(shù)字串 isAllNumbers String bool 檢查當(dāng)前表達(dá)式是否只由數(shù)字組成 isOperator String bool 檢查當(dāng)前字符串是否是有效的函數(shù)表達(dá)式 isAllowedSym char bool 檢查當(dāng)前字符是否是有效符號 Syntax String void 檢查字符串表達(dá)式的語法有效性 putMult String String 對乘法操作符的處理 parseE String String 對科學(xué)記數(shù)的處理 match String , int int 對括號的處理 getOp String , int String 從表達(dá)式中提取一個操作符 parse String Node 分析表達(dá)式,并創(chuàng)建一顆分析樹 toValue Node double 解析分析樹,并返回相應(yīng)的值 46 繪制圖形 由公式分析器對表達(dá)式分析,生成一個 n 階矩陣用以保存分析的結(jié)果值: x0 , y0 x1 , y1 : : xn1 , y n1 對應(yīng)于相應(yīng)的結(jié)果矩 陣,結(jié)合給出的 x的區(qū)間計算出相應(yīng)的 y區(qū)間,并由刻度分值來生成網(wǎng)格線。在繪制圖形時,根據(jù)矩陣中 x 和 y 相對應(yīng)的值,確定一個小區(qū)間的直線,然后將這些直線連接起來,形成函數(shù)表達(dá)式的圖形。在繪制函數(shù)表達(dá)式圖形的過程中,主要用到的方法是 。 繪制函數(shù)表達(dá)式圖形時,要給定函數(shù)的表達(dá)式, x 的區(qū)間,和繪制的點數(shù),然后由公式分析器對表達(dá)進(jìn)行處理,生成結(jié)果分析樹,得出一個結(jié)果矩陣,由結(jié)果矩陣生成一系列的直線,由這些直線相接生成函數(shù)的圖形。 函數(shù)表達(dá)式的錄入窗口如圖 所示: 圖 函數(shù)表達(dá)式的錄入窗口 設(shè)定相關(guān)參數(shù)后, 按確定可繪制出相應(yīng)的函數(shù)圖形,上面的輸入可生成如圖 所示的函數(shù)圖形: 圖 y= x*sin(x)函數(shù)圖形 6 2D 函數(shù)圖形繪制模塊設(shè)計 47 y=log10(x)的圖形如圖 所示: 圖 y=log10(x)的圖形 在輸入表達(dá)式時采用函數(shù)表達(dá)式方式輸入,輸入 10log(x),即可繪制出 y=log10(x)的圖形。 對于復(fù)雜的函數(shù)表達(dá)式,用手工的方式是很難繪制出相應(yīng)的函數(shù)表達(dá)式的,但用 2D幾何畫板,可方便的繪制出相應(yīng)的函數(shù)表達(dá)式。如 y=fpart(x)*cos(x)2。在 2D 幾何畫板中設(shè)定相應(yīng)的參數(shù),如圖 所示: 圖 參數(shù)設(shè)置 由 2D 幾何畫板可方便的繪制出其圖形,如圖 所示: 48 圖 y=fpart(x)*cos(x)2 函數(shù)圖 也可以設(shè)定不同的 x區(qū)間,以觀察函數(shù)圖形在不同區(qū)間的性質(zhì),如對于上面的例子,將 x區(qū)間設(shè)定為 5 到 10,繪制出的圖形如圖 所示: 圖 y=fpart(x)*cos(x)2 在區(qū)間 510 函數(shù)圖 y=fpart(x)*cos(x)2 在區(qū)間 0 到 2 的圖形如圖 所示: 6 2D 函數(shù)圖形繪制模塊設(shè)計 49 圖 y=fpart(x)*cos(x)2 在區(qū)間 02 函數(shù)圖 50 7 序列化模塊設(shè)計 51 7 序列化模塊設(shè)計 Serialization(序列化) 是 .NET 中一種實現(xiàn)對象持久性( Persistent)的機(jī)制。它是一個將對象中的數(shù)據(jù)轉(zhuǎn)換成一個單一元素(通常是 Stream)的過程。它的逆過程是Deserialization。 Serialization 的核心概念是將一個對象的所有數(shù)據(jù)看作一個獨(dú)立的單元。 序列化是指將對象實例的狀態(tài)存儲到存儲媒體的過程。在此過程中,先將對象的公共字段和私有字段以及類的名稱(包括類所在的程序集)轉(zhuǎn)換為字節(jié)流,然后再把字節(jié)流寫入數(shù)據(jù)流。在隨后對對象進(jìn)行反序列化時,將創(chuàng)建出與原對象完全相同的副本。 一般說來,在兩種情況下非常需要 Serialization: 1)當(dāng)我們希望能夠?qū)ο螽?dāng)前的狀態(tài)完整地保存到存儲介質(zhì)中,以便我們以后能夠精確地還原對象時; 2)當(dāng)我們希望將對象從一個應(yīng)用程序空間( Application domain)傳遞到另一個應(yīng)用程序空間時。例如, Windows Form程序就是利用 Serialization機(jī)制來實現(xiàn)剪貼板的 copy amp。 paste 的。 序列化類型 .NET Framework 支 持兩種類型的 Serialization: Shallow Serialization 和 Deep Serialization。 Shallow Serialization 所謂 Shallow Serialization 是將對象的可讀寫( readwrite)屬性的值轉(zhuǎn)換成字節(jié)流,而對象內(nèi)部的數(shù)據(jù)(沒有通過 readwrite 屬性暴露出來的數(shù)據(jù))則不被轉(zhuǎn)換。 XmlSerializer以及 Web Services 就使用這種技術(shù)。 Deep Serialization Deep Serialization 比 Shallow Serialization 更加徹底,因為它是將存儲在對象 私有變量里的實際值拷貝到字節(jié)流里。而且 Deep Serialization 還將 serialize 整個 object graph。也就是說,如果你的對象持有其他對象的引用,或者其他對象引用的集合,那么所有這些對象都將被
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1