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

正文內(nèi)容

基于dxf格式cad文檔保護(hù)系統(tǒng)置亂模塊的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-資料下載頁(yè)

2025-07-01 21:58本頁(yè)面

【導(dǎo)讀】作為一款優(yōu)秀的工業(yè)制圖軟件,AutoCAD得到了極為廣泛的應(yīng)用。眾所周知,每一張工程圖紙都是工程師們的智慧結(jié)晶,關(guān)系了公司的。每個(gè)公司都把工程圖紙當(dāng)作最機(jī)密的文件,一旦泄露到競(jìng)爭(zhēng)對(duì)手手。中,將給公司帶來(lái)無(wú)法估計(jì)的損失。我們可以極為方便地開發(fā)出AutoCAD軟件的插件。護(hù)工具提供了可能性。本文的重點(diǎn)在于如何分割實(shí)體,針對(duì)不同的實(shí)體設(shè)計(jì)出相應(yīng)的加。本文還涉及到對(duì)用戶行為的監(jiān)控,軟件與AutoCAD軟件的兼容性問題。師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。而使用過的材料。究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文。不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。全意識(shí)到本聲明的法律后果由本人承擔(dān)。同意學(xué)校保留并向國(guó)家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位。涉密論文按學(xué)校規(guī)定處理。

  

【正文】 塊定義的關(guān)系 塊參照可以看成一個(gè)實(shí)體,有坐標(biāo),比例等屬性。塊參照指向一個(gè)塊定義,塊定義以一個(gè)塊表記錄的形式存在里面包含了實(shí)體的集合。同時(shí)可以有多個(gè)塊參照指向一個(gè)塊定義,在圖紙上顯示為由多個(gè)塊的副本存在。 做為一個(gè)實(shí)體,我們可以同處理其他實(shí)體的方式一樣,在遍歷塊表的時(shí)候,可以讀取到塊參照,這時(shí)候,就可以對(duì)塊進(jìn)行置亂處理。 我們首先將塊里面的實(shí)體單獨(dú)提取出來(lái),對(duì)每個(gè)實(shí)體進(jìn)行單獨(dú)置亂。然后,將這些實(shí)體再次集合成一個(gè)塊,然后對(duì)塊的整體進(jìn)行處理。 具體流程見圖 46。 線 圓 塊參照 線 塊參照 圓 圓 塊參照 塊參照 …… 塊定義 1 線 圓 弧線 …… 塊定義 2 圓 線 弧線 …… 哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 20 提 取 塊 信 息從 塊 中 提 取實(shí) 體 信 息點(diǎn) 處 理 線 處 理 圖 形 處 理 文 字 處 理將 各 個(gè) 實(shí) 體 重新 結(jié) 合 成 塊處 理 塊 整 體開 始結(jié) 束 圖 46 塊處理 流程 在實(shí)際開發(fā)過程中還存在一個(gè)問題,塊定義作為一個(gè)塊表記錄存在,里面可以包含許多實(shí)體,那么應(yīng)該也是可以包含塊參照,這樣就出現(xiàn)了塊中間還有一個(gè)塊。雖然在實(shí)際應(yīng)用中,這種情況可能不多見,但是也應(yīng)該考慮到。可以使用遞歸的方式來(lái)處理。 哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 21 圖紙邊界處理 作為每一張 CAD 圖紙,都有一個(gè)圖紙邊界,我們需要確保所有的坐標(biāo)都位于這個(gè)邊界之中。當(dāng)我們對(duì)坐標(biāo)進(jìn)行變換完畢后,我們還需要對(duì)坐標(biāo)進(jìn)行判斷,是否超出了圖紙的邊界,如果超過了邊界,那么也是不允許的。 我們考慮了使用取模的方法來(lái)進(jìn)行處理 ,但是要判斷一個(gè)坐標(biāo)是否是一個(gè)超出邊界的坐標(biāo),需要設(shè)定一個(gè)標(biāo)志位來(lái)進(jìn)行判斷,這樣加大了存儲(chǔ)空間。幸好,通過算法上的優(yōu)化,可以最大限度上來(lái)避免數(shù)字過大而超過邊界的情況出現(xiàn)因此我們可以通過進(jìn)行一次新的置亂過程來(lái)處理。 其他相關(guān)屬性處理 在 CAD 圖紙中,每一個(gè)實(shí)體不僅僅只有長(zhǎng)度,坐標(biāo)等屬性,還包括了線條的顏色,線條的粗細(xì)等屬性。有些情況下,這些屬性也可能泄露出一些比較重要的信息,因此在這些情況下,應(yīng)該可以對(duì)這些屬性也進(jìn)行保護(hù)。 我們把這些功能做成可選項(xiàng),當(dāng)用戶需要對(duì)這些屬性進(jìn)行置亂的時(shí)候,就可以選擇相關(guān)選項(xiàng),而大 部分情況下,為了節(jié)省計(jì)算機(jī)的資源,這些選項(xiàng)是可以不用的。 實(shí)體 置亂模塊的實(shí)現(xiàn) 實(shí)體 置亂模塊的程序?qū)崿F(xiàn) 實(shí)體 置亂模塊是整個(gè)系統(tǒng)的重點(diǎn),也是最大的難點(diǎn),在實(shí)現(xiàn)的過程中,我們付出了很大的努力。其類圖如圖 47 所示。 其中 DisorderApp 類用于程序的初始化以及卸載,當(dāng)程序被 AutoCAD 軟件載入的時(shí)候,調(diào)用 initApp()方法,對(duì)各個(gè)置亂類進(jìn)行初始化,在軟件中注冊(cè)命令等操作。卸載程序時(shí),調(diào)用 unloadApp()方法,對(duì)刪除各個(gè)類的注冊(cè)。acrxEntryPoint()方法用于對(duì)實(shí)體進(jìn)行定位。 OpenDB 類用于打開并建立一個(gè)實(shí)體數(shù)據(jù)庫(kù)。其中 getBlockTable()方法用于獲得并創(chuàng)建一個(gè)實(shí)體列表,以供其它置亂類使用。 getEntry()方法用于獲得實(shí)體列表中的各個(gè)實(shí)體。 哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 22 + i n i t A p p ( )+ u n l o a d A p p ( )+ a c r x E n t r y P o i n t ( )D i s O r d e r A p p+ g e t E n t i t y ( )+ g e t B l o c k T a b l e ( )O p e n D B+ i s K i n d O f ( )+ o r d e r ( )+ e n c r y p t ( i n p a s s w o r d : i n t )+ a p p e n d A c D b E n t i t y ( )+ c l o s e ( )L i n e D i s o r d e r+ i s K i n d O f ( )+ e n c r y p t ( )+ s e t C e n t e r ( )+ s e t R a d i u s ( )+ a p p e n d A c D b E n t i t y ( )+ c l o s e ( )C i r c l e D i s o r d e r+ s e t T e x t S t r i n g ( )+ a p p e n d A c D b E n t i t y ( )+ c l o s e ( )+ i s K i n d O f ( )+ e n c r y p t ( )T e x t D i s o r d e r+ A c D b B l o c k R e f e r e n c e ( )+ s e t P o s i t i o n ( )+ b l o c k T a b l e R e c o r d ( )+ e n c y r p t ( )+ i s K i n d O f ( )B l o c k D i s o r d e r+ s e t P o i n t A t ( )+ a p p e n d A c D b E n t i t y ( )+ c l o s e ( )+ i s K i n d O f ( )+ e n c r y p t ( )P o l y O r d e r+ i s K i n d O f ( )+ e n c r y p t ( )+ s e t C e n t e r ( )+ s e t R a d i u s ( )+ s e t S t a r t A n g l e ( )+ s e t E n d A n g l e ( )+ c l o s e ( )A r c D i s o r d e r 圖 47 實(shí)體 置亂模塊類圖 LineDisorder 類實(shí)現(xiàn)了對(duì)線的置亂。其中 isKindOf()方法用于對(duì)獲得的實(shí)體進(jìn)行對(duì)比,以確定實(shí)體類型為一條直線。 order()方法用于對(duì)獲得的線進(jìn)行分組。 encrypt()方法用于調(diào)用置亂算法,對(duì)分組后的直線進(jìn)行置亂處理。appendAcDbEntity()方法用于把置亂后的線段數(shù)據(jù)更新到 CAD 文檔中。置亂完畢后,我們需要調(diào)用 close()方法,將打開的實(shí)體進(jìn)行關(guān)閉,否則 AutoCAD軟件會(huì)因?yàn)橘Y源管理問題而出錯(cuò)。 ArcDisorder 類用于對(duì)弧線進(jìn)行置亂操作。其中 isKindOf()方法用于對(duì)獲得的實(shí)體進(jìn)行對(duì)比,以確定實(shí)體類型為一條弧線。 encrypt()方法用于調(diào)用置亂算法。 setCenter()方法用于對(duì)弧線的圓心進(jìn)行處理, setStartAngle()方法用于對(duì)弧線的起始角度進(jìn)行處理, setEndAngle()方法用于對(duì)弧線的 結(jié)束角度進(jìn)行處理。同樣我們需要調(diào)用 close()方法,將打開的弧線進(jìn)行關(guān)閉,以釋放資源。 TextDisorder 類用于對(duì)文字進(jìn)行處理。同樣,我們調(diào)用 isKindOff()和哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 23 encrypt()方法進(jìn)行實(shí)體確認(rèn)和算法調(diào)用。通過 appendAcDbEntity()方法來(lái)對(duì)修改內(nèi)容進(jìn)行更新。 PolyDisorder 類實(shí)現(xiàn)對(duì)多邊形的處理,其中 setPoint 方法用于計(jì)算各個(gè)點(diǎn)的坐標(biāo)。 encrypt()方法用于調(diào)用置亂算法,對(duì)分組后的直線進(jìn)行置亂處理。appendAcDbEntity()方法用于把置亂后的線段數(shù)據(jù)更 新到 CAD 文檔中。 BlockDisorder 類用于對(duì)塊進(jìn)行置亂。其中 blockTableRecord()方法用于獲取塊所指向的記錄集,并對(duì)指向的記錄集中的實(shí)體進(jìn)行置亂操作,AcDbBlockReference()方法用于獲得塊參照信息。 setPosition()方法用于對(duì)塊參照的整體進(jìn)行置亂操作。 文檔置亂模塊運(yùn)行結(jié)果 首先,打開 AutoCAD 軟件,使用 appload 命令載入我們的應(yīng)用程序。文檔置亂模塊在用戶對(duì)文檔進(jìn)行保存,關(guān)閉等操作時(shí)進(jìn)行工作,因此我們打開一個(gè)正常的 CAD 文檔,如圖 48 所示。 圖 48 置亂前的 CAD 文檔 然后我們對(duì)這個(gè)文檔進(jìn)行保存操作。保存完畢后,我們重新打開這個(gè)文檔,就可以看到置亂的結(jié)果,如圖 49 所示。 哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 24 圖 49 置亂后的 CAD 文檔 通過程序的運(yùn)行結(jié)果,我們可以發(fā)現(xiàn),當(dāng)用戶直接對(duì)程序進(jìn)行保存后,將會(huì)得到一個(gè)跟原來(lái)文檔完全不一樣的一個(gè)結(jié)果,這樣,即使這個(gè)文檔通過某種人為的方式泄露出去,也不會(huì)造成巨大的損失。當(dāng)需要使用到這個(gè)文檔的時(shí)候,我們就可以運(yùn)行文檔恢復(fù)模塊對(duì)其進(jìn)行恢復(fù)。 實(shí)體恢復(fù)模塊的設(shè)計(jì) 實(shí)體 恢復(fù)模塊是實(shí)體置亂模塊的逆過程。在實(shí)體置亂模塊中,我們針對(duì)每一個(gè)實(shí)體,進(jìn)行 了可逆的變換,同時(shí)存儲(chǔ)了相應(yīng)的加密信息。在文檔恢復(fù)模塊中,我們需要通過這些加密信息,對(duì)每一個(gè)實(shí)體進(jìn)行恢復(fù)。具體流程如圖 410 所示。 哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 25 圖 形 恢 復(fù)點(diǎn) 恢 復(fù) 長(zhǎng) 度 恢 復(fù)獲 取 加 密 信 息標(biāo) 注 恢 復(fù) 文 字 恢 復(fù)存 儲(chǔ) 信 息提 取 實(shí) 體 信 息開 始結(jié) 束 圖 410 實(shí)體 恢復(fù)模塊流程 首先從文件中提取出實(shí)體信息和加密信息,然后針對(duì)不同的實(shí)體,進(jìn)行加密操作的逆運(yùn)算,例如對(duì)點(diǎn)坐標(biāo)乘上逆矩陣?;謴?fù)完畢后,將恢復(fù)好的實(shí)體信息在儲(chǔ)存到 CAD 文檔中 由于這個(gè)模塊是實(shí)體置亂模塊的一個(gè)逆過程,在已經(jīng)知道相關(guān)算法以及流程的情況下,實(shí)現(xiàn)起來(lái)還是比較容易的。 哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 26 點(diǎn)的恢復(fù) 在 AutoCAD 中 ,各個(gè)實(shí)體是按照順序儲(chǔ)存的。在恢復(fù)的過程中,首先從已經(jīng)置亂的文檔中獲取到所有點(diǎn)的數(shù)據(jù),然后,進(jìn)行分組。分組完成后,形成矩陣,通過矩陣恢復(fù)算法,將這個(gè)矩陣恢復(fù)成原來(lái)的矩陣。然后把矩陣的元素恢復(fù)成正確順序,然后分配到相應(yīng)的點(diǎn)中去,然后就可以顯示正確的圖形。流程如圖 411 所示。 提 取 點(diǎn) 坐 標(biāo)形 成 分 組形 成 矩 陣恢 復(fù) 矩 陣恢 復(fù) 順 序分 配 點(diǎn) 坐 標(biāo)開 始結(jié) 束 圖 411 點(diǎn)恢復(fù) 流程 通過這種二次置亂,恢復(fù),可以比較有效的保護(hù)文檔中的信息。 線的恢復(fù) 在線的恢復(fù)上,是比較簡(jiǎn)單的。之前對(duì)線段特殊情況已經(jīng)進(jìn)行處理,因此在恢復(fù)的時(shí)候,是需要 考慮這些情況的。同樣提取出線段實(shí)體后,對(duì)于已經(jīng)進(jìn)行特殊處理的線段,我們需要根據(jù)其處理方式先把它恢復(fù)?;謴?fù)完成后進(jìn)行分組,以 4 條線段,也就是 8 個(gè)點(diǎn), 16 個(gè)坐標(biāo)為 1 組,然后進(jìn)行恢復(fù)?;謴?fù)完成后,將 16 個(gè)元素分配到 4 條線段中,就可以回復(fù)到正確的圖形。具體流程如圖 412 所示。 哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 27 提 取 線段 坐 標(biāo)數(shù) 據(jù) 分 組數(shù) 據(jù) 恢 復(fù)存 儲(chǔ) 坐 標(biāo)是 否 有 進(jìn) 行特 殊 處 理進(jìn) 行 恢 復(fù)是否開 始結(jié) 束 圖 412 線恢復(fù) 流程 線的恢復(fù) 在對(duì)多邊形的恢復(fù)上,首先,我們需要獲取到圖形是以哪個(gè)頂點(diǎn)進(jìn)行計(jì)算的。我們?cè)谶M(jìn)行置亂處理的時(shí)候,設(shè)立了一個(gè)標(biāo)志位,在進(jìn)行恢復(fù)的時(shí)候,就可以提取出哪個(gè) 點(diǎn)是基點(diǎn)。然后依次對(duì)點(diǎn),長(zhǎng)度,角度進(jìn)行恢復(fù),恢復(fù)完成后,通過多邊形的形狀,利用數(shù)學(xué)計(jì)算,得到其他點(diǎn)的坐標(biāo)。具體流程如哈爾濱工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 28 圖 413 所示。 獲 取 基 點(diǎn) 坐 標(biāo)恢 復(fù) 坐 標(biāo)獲 取 邊 長(zhǎng)和 角 度計(jì) 算 其 余各 點(diǎn) 坐 標(biāo)儲(chǔ) 存 各 點(diǎn) 坐 標(biāo)開 始 結(jié) 束 圖 413 多邊形恢復(fù) 流程 實(shí)體恢復(fù)模塊的實(shí)現(xiàn) 由于本模塊是實(shí)體置亂模塊的一個(gè)逆過程,在實(shí)體置亂模塊已經(jīng)實(shí)現(xiàn)的基礎(chǔ)上, 要實(shí)現(xiàn)恢復(fù)模塊是比較容易的,主要需要考慮的是如何提取出相應(yīng)的加密信息,以及如何對(duì)一些特殊情況進(jìn)行處理。其類圖如圖 413 所示。 + i n i t A p p ( )+ u n l o a d A p p ( )+ a c r x E n t r y P o i n t ( )o r d e r A p+ g e t E n t i t y ( )+ g e t B l o c k T a b l e ( )O p e n D+ i s K i n d O f ( )+ d i s o r d e r ( )+ u n e n c r y p t ( )+ a p p e n d A c D b E n t i t y ( )+ c l o s e ( )L i n e O r d e+ i s K i n d O f ( )+ u n e n c r y p t ( )+ r e s e t C e n t e r ( )+ r e s e t R a d i u s ( )+ r e s e t S t a r t A n g l e ( )
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1