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

正文內(nèi)容

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

2025-06-25 18:26本頁(yè)面

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

  

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