【維普】軟件工程-基于WebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺_第1頁
【維普】軟件工程-基于WebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺_第2頁
【維普】軟件工程-基于WebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺_第3頁
【維普】軟件工程-基于WebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺_第4頁
【維普】軟件工程-基于WebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄緒論1.1研究背景及意義近年來,隨著教育信息化的快速發(fā)展,在線教育資源短缺的問題逐漸緩解,但仍然不可忽視?,F(xiàn)階段我們面臨的主要困境是對符合時代潮流的公平、良好的在線教育資源的需求問題。在中國和世界各地,越來越多的高收入家庭正在成長,他們對更高水平、更高質(zhì)量、更金屬化的在線教育的需求越來越大,這對在線教育資源供應(yīng)構(gòu)成了重大挑戰(zhàn),而且需求強(qiáng)勁,優(yōu)質(zhì)定制的在線教育資源太少,無法滿足課堂上不同學(xué)生和監(jiān)護(hù)人的個性化需求。此外,新型冠狀病毒給傳統(tǒng)學(xué)校教育正常的發(fā)展帶來了影響,但也刺激了在線教育的興起,學(xué)習(xí)關(guān)系、學(xué)習(xí)環(huán)境、學(xué)習(xí)者和學(xué)習(xí)方法都發(fā)生了嚴(yán)重變化,并進(jìn)一步導(dǎo)致了“教育+互聯(lián)網(wǎng)”的轉(zhuǎn)變。在線教育相對于解決當(dāng)前教育面臨的不平衡問題具有優(yōu)勢,能夠滿足學(xué)生的個性化學(xué)習(xí)需求。雖然在線教育和家庭學(xué)習(xí)無法被傳統(tǒng)課堂教育取代,但即使在積極的在線教育之后,傳統(tǒng)課堂教育也往往會帶來積極的變化,家庭在線學(xué)習(xí)將不可避免。與此同時,可視化技術(shù)在今天的信息時代中扮演著越來越重要的角色。數(shù)據(jù)是信息時代的核心,但是大量的數(shù)據(jù)并不容易被人們理解。通過可視化技術(shù),可以將數(shù)據(jù)轉(zhuǎn)化為更直觀、更易于理解的形式,使人們更容易從數(shù)據(jù)中發(fā)現(xiàn)規(guī)律和趨勢。同時也可以更快地找到數(shù)據(jù)中的關(guān)鍵信息。這有助于減少在數(shù)據(jù)中尋找信息所花費(fèi)的時間和精力,從而提高工作效率??梢暬夹g(shù)可以讓數(shù)據(jù)更加直觀,更容易被人們理解。這有助于促進(jìn)溝通和合作,使不同的人能夠更好地共同工作和協(xié)作。它還可以通過使用數(shù)據(jù)脫敏技術(shù)來保護(hù)敏感信息的安全性。這可以防止未經(jīng)授權(quán)的人員訪問敏感數(shù)據(jù),并幫助保護(hù)隱私。總之,可視化技術(shù)在今天的信息時代中具有重要的意義。它可以幫助人們更好地理解數(shù)據(jù),提高決策的質(zhì)量,提高效率,促進(jìn)溝通和合作,同時還可以保護(hù)數(shù)據(jù)的安全性。通過在解析幾何中加入可視化技術(shù),可以提高學(xué)習(xí)效果,增強(qiáng)學(xué)習(xí)興趣和參與度,拓展學(xué)習(xí)方式,從而更好地滿足學(xué)習(xí)者的需求,促進(jìn)解析幾何教育的創(chuàng)新和發(fā)展。首先,解析幾何中的概念和定理往往是抽象的,通過可視化技術(shù)可以將其轉(zhuǎn)化為形象的圖像和動畫,使學(xué)習(xí)者更容易理解和掌握。其次,可視化技術(shù)可以幫助學(xué)習(xí)者更好地理解幾何圖形和變換,例如通過旋轉(zhuǎn)、平移和縮放等變換來展示幾何圖形的性質(zhì)和特征,從而提高學(xué)習(xí)效果。此外,解析幾何中的某些概念和定理可以通過可視化技術(shù)進(jìn)行模擬和演示,讓學(xué)習(xí)者在實(shí)踐中理解其本質(zhì)和應(yīng)用,從而更深刻地理解和掌握。另外,可視化技術(shù)可以增強(qiáng)學(xué)習(xí)者的學(xué)習(xí)興趣和參與度,激發(fā)學(xué)習(xí)熱情和積極性,使學(xué)習(xí)過程更加愉悅和有趣。最后,可視化技術(shù)可以拓展學(xué)習(xí)方式,為學(xué)習(xí)者提供更加靈活、多樣化的學(xué)習(xí)途徑,滿足不同學(xué)習(xí)風(fēng)格和需求的學(xué)習(xí)者。1.2國內(nèi)外發(fā)展概況1.2.1在線學(xué)習(xí)平臺在線學(xué)習(xí)平臺指的是通過互聯(lián)網(wǎng)為用戶提供在線學(xué)習(xí)服務(wù)的平臺。隨著互聯(lián)網(wǎng)的普及和技術(shù)的不斷發(fā)展,在線學(xué)習(xí)平臺逐漸興起并發(fā)展壯大。早期的在線學(xué)習(xí)平臺主要是一些學(xué)術(shù)機(jī)構(gòu)和大學(xué)提供的遠(yuǎn)程教育課程。這些課程主要采用在線錄播的方式,學(xué)生可以通過互聯(lián)網(wǎng)觀看教學(xué)視頻,并通過電子郵件或在線討論板與教師互動。這種形式的在線學(xué)習(xí)平臺主要是為那些無法到校學(xué)習(xí)的學(xué)生提供方便的教育服務(wù)。隨著技術(shù)的不斷發(fā)展,以及互聯(lián)網(wǎng)和移動設(shè)備的普及,在線學(xué)習(xí)平臺逐漸從傳統(tǒng)的遠(yuǎn)程教育模式向互動式、多媒體式、社交化的學(xué)習(xí)平臺轉(zhuǎn)變。這些平臺提供了更加多樣化和靈活的學(xué)習(xí)內(nèi)容,包括在線課程、自主學(xué)習(xí)模塊、知識問答社區(qū)等。與傳統(tǒng)教育相比,基于現(xiàn)代信息技術(shù)的在線教育擴(kuò)大了良好教育資源的優(yōu)勢,打破了時空的限制和體制的障礙,促進(jìn)了教育的發(fā)展,這是對傳統(tǒng)教育的前進(jìn)突破。根據(jù)艾瑞咨詢數(shù)據(jù)顯示,2016年到2019年間,整個中國教育行業(yè)的信息化率從8%-10%上升到13%至15%。由于新型冠狀病毒的影響,學(xué)校被推遲到廣泛的在線教育,中國在線教育市場的數(shù)量達(dá)到3730億元,比前一年增長35.5%,整體信息化率增長23%至25%。總體而言,我們的在線教育仍在初期階段,發(fā)展?jié)摿薮?。電子學(xué)習(xí)平臺是實(shí)現(xiàn)電子學(xué)習(xí)的載體和基礎(chǔ),電子學(xué)習(xí)的快速發(fā)展與電子學(xué)習(xí)平臺的發(fā)展息息相關(guān)。在線學(xué)習(xí)平臺是教育和技術(shù)相結(jié)合的產(chǎn)物,所以其發(fā)展也主要受到非技術(shù)和技術(shù)兩個方面因素的影響。在非技術(shù)方面,楊曉宏等人[1]以網(wǎng)易公開課等在線教育平臺為研究對象,運(yùn)用調(diào)查研究法、內(nèi)容分析法分析了國內(nèi)在線教育的發(fā)展現(xiàn)狀,指出教學(xué)資源、教學(xué)模式、交互方式會對在線教育平臺的發(fā)展產(chǎn)生影響。毛軍權(quán)[2]對在線教育實(shí)踐進(jìn)行了反思,指出教學(xué)質(zhì)量、優(yōu)質(zhì)資源共享的持續(xù)性、個性化教學(xué)的開展也是影響在線教育平臺發(fā)展的重要因素。張男星等[3]將我國在線高等教育平臺與國外在線高等教育平臺進(jìn)行比較,探討了學(xué)科類型、課程語言、課程共享性等因素對在線高等教育平臺國際影響力的影響。Kravvaris[4]則證實(shí)了用戶在社交媒體上的推薦對在線教育平臺發(fā)展的影響。在技術(shù)方面,王運(yùn)武等[5]通過分析5G網(wǎng)絡(luò)技術(shù)的優(yōu)勢,指出5G技術(shù)可以為在線教育平臺提供全新的應(yīng)用場景和廣闊的發(fā)展空間。Chenetal.[6]指出平臺技術(shù)對用戶的滿意度影響最大,是影響在線教育平臺發(fā)展的首要因素。他們提出應(yīng)當(dāng)簡化平臺設(shè)計(jì)、提高平臺對移動設(shè)備的適應(yīng)性、增加平臺功能、優(yōu)化網(wǎng)絡(luò)環(huán)境等建議以推動在線教育平臺持續(xù)健康發(fā)展。Asarbakhsh、劉述、董偉等([7]-[9])也從用戶體驗(yàn)角度對提高在線教育平臺的可用性提出了相應(yīng)的技術(shù)建議。當(dāng)前的在線學(xué)習(xí)平臺主要包括三種類型:MOOC(大規(guī)模開放在線課程)、SPOC(小規(guī)模私有在線課程)和BOP(在線與離線混合課程)。其中,MOOC是最具代表性的一種在線學(xué)習(xí)平臺,它是一種開放式的在線課程,通常由知名大學(xué)或知名企業(yè)提供。學(xué)生可以通過互聯(lián)網(wǎng)免費(fèi)或付費(fèi)參加課程,并與來自世界各地的其他學(xué)生交流和學(xué)習(xí)。而SPOC和BOP則更加注重個性化和定制化的學(xué)習(xí)服務(wù),通常由企業(yè)或機(jī)構(gòu)提供,可以為學(xué)生提供更加貼合實(shí)際需要的學(xué)習(xí)內(nèi)容和服務(wù)??偟膩碚f,在線學(xué)習(xí)平臺的發(fā)展經(jīng)歷了從傳統(tǒng)遠(yuǎn)程教育到互動式、多媒體式、社交化的學(xué)習(xí)平臺的轉(zhuǎn)變,同時也不斷出現(xiàn)新的學(xué)習(xí)模式和服務(wù)形式。未來,隨著技術(shù)的進(jìn)一步發(fā)展和教育的深入變革,在線學(xué)習(xí)平臺將會更加多樣化和普及化,成為一種更加靈活、便捷和有效的學(xué)習(xí)方式。1.2.2可視化建模技術(shù)可視化建模技術(shù)是指利用圖形界面和交互性操作來快速創(chuàng)建和修改三維模型的技術(shù)。它是三維建模技術(shù)的一種重要發(fā)展方向,主要應(yīng)用于計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、虛擬現(xiàn)實(shí)(VR)、電影、游戲、建筑設(shè)計(jì)等領(lǐng)域。可視化建模技術(shù)的主要特點(diǎn)是用戶友好和操作直觀,使得使用者無需熟練掌握大量命令和參數(shù),而能夠通過直觀的圖形界面和交互式手段來完成三維模型的創(chuàng)建和修改。這種技術(shù)的應(yīng)用能夠提高建模效率、縮短設(shè)計(jì)周期和降低建模成本??梢暬夹g(shù)出現(xiàn)于20世紀(jì)80年代,是一種利用計(jì)算機(jī)圖像處理技術(shù)和網(wǎng)絡(luò)編程技術(shù),將圖形信息在終端屏幕上呈現(xiàn)并與操作者進(jìn)行交互的技術(shù)[10]。隨著虛擬現(xiàn)實(shí)技術(shù)的快速發(fā)展,可視化技術(shù)逐步向三維立體方向發(fā)展[11]。三維可視化技術(shù)彌補(bǔ)了傳統(tǒng)二維文本、表格等的不足,能讓用戶獲得良好的沉浸感與交互感[12],讓用戶能在虛擬環(huán)境中體驗(yàn)現(xiàn)實(shí)中的物理世界[13]。由于三維可視化技術(shù)的展示方式給人以更直觀的方式更加貼近現(xiàn)實(shí)的世界,因此三維可視化技術(shù)逐漸應(yīng)用于交通、軍事、醫(yī)療等工業(yè)與生活中的各個領(lǐng)域[14-16]。目前國外研究中,SSannikov[17]等將三維可視化技術(shù)與增強(qiáng)現(xiàn)實(shí)用于中學(xué)教育中,提高學(xué)生的學(xué)習(xí)興趣。LJia[18]等基于虛擬全向電源反饋分析裝置的工作原理,通過VC++與OSG相結(jié)合,實(shí)現(xiàn)了三維虛擬物體的拾取與交互移動。XCSun[19]等為共享虛擬拆卸資源,設(shè)計(jì)了煤礦機(jī)械設(shè)備三維虛擬拆卸公共服務(wù)平臺。國內(nèi)也有許多學(xué)者對三維可視化技術(shù)開展研究。張青雷[20]等提出一種新的面向數(shù)字孿生車間的三維可視化交互系統(tǒng)六維模型,并開發(fā)出三維可視化交互系統(tǒng),促進(jìn)了人-物理-虛擬的協(xié)調(diào)與融合。邱楓[21]等開發(fā)出一套離散制造機(jī)加車間三維可視化監(jiān)控系統(tǒng),以解決現(xiàn)有可視化監(jiān)控3D場景占用資源和系統(tǒng)大數(shù)據(jù)量并發(fā)時系統(tǒng)卡頓問題。3D計(jì)算機(jī)圖形是在計(jì)算機(jī)和專門的3D軟件的結(jié)合下創(chuàng)建的,3D計(jì)算機(jī)圖形和2D計(jì)算機(jī)圖形通過存儲在計(jì)算機(jī)中的幾何數(shù)據(jù)的三維數(shù)據(jù)表示來區(qū)分,并計(jì)算最終的三維圖像。如今的開發(fā)人員使用更多的網(wǎng)頁,這些網(wǎng)頁封裝在WebGL和GLSL語言中。由于開發(fā)過程大大簡化,開發(fā)人員不需要關(guān)注三維圖形渲染方法,而只關(guān)注三維圖形開發(fā),這是設(shè)計(jì)公司的實(shí)現(xiàn),不需要循序漸進(jìn)地解釋渲染方法。只需較少的圖形知識和計(jì)算機(jī)編程技能,就可以使用3D。它被開發(fā)人員廣泛使用,并被用作基于WebGL的3D引擎技術(shù)中記錄最廣泛的工具。目前在3D建模中使用的工具有Three.js、Babylon.js、Blender等等。Three.js最初由RicardoCabello在2010年創(chuàng)建,它的設(shè)計(jì)目標(biāo)是使得3D圖形編程更加容易。與其他3D引擎相比,Three.js具有更簡潔的API和更易于使用的工具,它使得即使沒有深入了解3D編程的開發(fā)者也可以創(chuàng)建出優(yōu)秀的3D應(yīng)用程序。在Three.js中,所有的3D對象都是由基本的幾何形狀構(gòu)成的,如球體、立方體、圓柱體等等。開發(fā)者可以使用Three.js提供的材質(zhì)和紋理來渲染這些幾何形狀,并可以將它們組合在一起來創(chuàng)建復(fù)雜的3D場景。同時,Three.js還支持燈光、陰影、相機(jī)和動畫等特性,使得開發(fā)者可以創(chuàng)建出更加真實(shí)和具有交互性的3D場景。由于Three.js基于WebGL技術(shù),因此它可以運(yùn)行在現(xiàn)代的Web瀏覽器中,而不需要安裝任何插件。它的代碼可以很容易地集成到其他的Web應(yīng)用程序中,如網(wǎng)站、游戲、教育和可視化等應(yīng)用領(lǐng)域。2.Babylon.js是一個基于WebGL的開源的JavaScript3D引擎。自2013年由微軟創(chuàng)立以來,它不斷迭代升級,發(fā)布了多個版本,包括了新的功能和API,例如新的GUI系統(tǒng)、物理引擎、VR支持、PBR系統(tǒng)等。隨著版本的不斷迭代,Babylon.js已成為WebGL3D引擎中的佼佼者,受到了越來越多開發(fā)人員和公司的關(guān)注和使用,應(yīng)用于游戲、VR、建筑和工業(yè)設(shè)計(jì)等領(lǐng)域。3.Blender在中國的使用者逐漸增多,尤其是在CG行業(yè)和教育領(lǐng)域。由于Blender是一款免費(fèi)、開源的軟件,這使得它在中國市場上比其他商業(yè)軟件更加具有競爭力。Blender在中國擁有著龐大的社區(qū),開發(fā)者們制作了大量的插件和工具,增強(qiáng)了Blender的功能。在教育領(lǐng)域,越來越多的學(xué)校開始將Blender納入課程,用于教授3D建模、動畫制作等相關(guān)知識。1.2.3解析幾何建模軟件幾何分析是數(shù)學(xué)領(lǐng)域的一個重要板塊,能夠反映學(xué)生對于空間幾何理解的能力。若能夠利用數(shù)學(xué)軟件演示形狀和幾何圖形,這將有助于未來的學(xué)生在初中繼續(xù)接受數(shù)學(xué)教育。當(dāng)然,幾何分析是培養(yǎng)學(xué)生解決問題、邏輯思維和創(chuàng)新技能的有效工具。此外,分析幾何課程的內(nèi)容相對抽象,學(xué)習(xí)過程不那么容易,學(xué)生對學(xué)習(xí)不感興趣,為了能使學(xué)生學(xué)習(xí)興趣增加,課堂學(xué)習(xí)效率提高,出現(xiàn)了教學(xué)輔助軟件。信息技術(shù)的發(fā)展,教育支持軟件的出現(xiàn),讓教育變得更容易。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)學(xué)教學(xué)輔助軟件[22]使數(shù)學(xué)課堂發(fā)生了巨大變化。教育信息化推動著“網(wǎng)絡(luò)學(xué)習(xí)空間人人通”工作不斷深入,這也為輔助軟件在解析幾何中的應(yīng)用創(chuàng)造了條件。《網(wǎng)絡(luò)學(xué)習(xí)空間建設(shè)與應(yīng)用指南》[23]對網(wǎng)絡(luò)學(xué)習(xí)空間的應(yīng)用目標(biāo)進(jìn)行了說明,首先要將以學(xué)生為中心的教育理念深入人心,其次要轉(zhuǎn)變教學(xué)方式,由以教為主轉(zhuǎn)向以學(xué)為主,采取自主學(xué)習(xí)、合作學(xué)習(xí)以及探索式學(xué)習(xí)等多種個性化的學(xué)習(xí)方式。關(guān)于網(wǎng)絡(luò)學(xué)習(xí)空間概念的論述,鐘紹春[24]認(rèn)為網(wǎng)絡(luò)學(xué)習(xí)空間是為網(wǎng)絡(luò)上不同的教育用戶提供的個性化服務(wù)的應(yīng)用系統(tǒng);郭紹青[25]認(rèn)為網(wǎng)絡(luò)學(xué)習(xí)空間是聚集數(shù)字與智力教育資源,不斷發(fā)展與融合新型信息技術(shù),提供虛實(shí)相融合的虛擬學(xué)習(xí)環(huán)境。通過這種網(wǎng)絡(luò)學(xué)習(xí)空間,將數(shù)學(xué)軟件融入幾何教學(xué),將為數(shù)學(xué)課堂帶來巨大的變化,將會突破傳統(tǒng)教學(xué)無法解決的難題。同時,也可以彌補(bǔ)教師直接講授的抽象與乏味,讓學(xué)生的學(xué)習(xí)由被動轉(zhuǎn)為主動。在此基礎(chǔ)上,學(xué)生可以鍛煉他們的空間想象能力,讓他們在學(xué)習(xí)中更加積極??梢暬夹g(shù)在解析幾何中的應(yīng)用非常廣泛。可視化技術(shù)可以通過圖形化的方式直觀地展現(xiàn)這些幾何圖形和代數(shù)方程之間的關(guān)系,從而幫助人們更好地理解和應(yīng)用解析幾何知識。以下是可視化技術(shù)在解析幾何中的具體應(yīng)用:1.三維圖形可視化:可視化技術(shù)可以將三維圖形在屏幕上呈現(xiàn)出來,使得人們可以通過旋轉(zhuǎn)、縮放等操作來觀察和研究這些圖形,從而更好地理解其性質(zhì)。通過可視化技術(shù),人們可以更直觀地感受到三維圖形的特點(diǎn),同時也可以更加深入地研究其內(nèi)在性質(zhì)。2.幾何圖形動態(tài)演示:可視化技術(shù)可以實(shí)現(xiàn)幾何圖形的動態(tài)演示,從而幫助人們更好地理解幾何變換的概念和性質(zhì)。例如,通過可視化技術(shù)可以呈現(xiàn)平移、旋轉(zhuǎn)、縮放等幾何變換的動態(tài)過程,使得人們可以更直觀地理解幾何變換的本質(zhì)和特點(diǎn)。3.代數(shù)方程圖形可視化:可視化技術(shù)可以將代數(shù)方程對應(yīng)的圖形呈現(xiàn)在屏幕上,從而幫助人們更好地理解方程與圖形之間的關(guān)系。例如,通過可視化技術(shù)可以呈現(xiàn)二次曲線、圓錐曲線等圖形的形狀和特點(diǎn),使得人們可以更直觀地理解代數(shù)方程與圖形之間的關(guān)系。4.建模和仿真:可視化技術(shù)可以利用建模工具快速創(chuàng)建復(fù)雜的幾何圖形,并通過仿真工具對其進(jìn)行分析和優(yōu)化。例如,通過可視化技術(shù)可以實(shí)現(xiàn)復(fù)雜機(jī)械結(jié)構(gòu)的建模和仿真,從而幫助人們更好地理解其結(jié)構(gòu)和運(yùn)行特點(diǎn)??梢暬夹g(shù)在解析幾何中具有重要的意義??梢暬夹g(shù)通過圖形和圖像的展示,能夠?qū)⒊橄蟮臄?shù)學(xué)概念和幾何對象轉(zhuǎn)化為直觀的可視化形式,從而幫助人們更好地理解和掌握解析幾何的概念和原理。解析幾何涉及到平面、直線、曲線、曲面等抽象的幾何對象。通過可視化技術(shù),可以將這些幾何對象呈現(xiàn)為圖形或圖像,使人們可以更直觀地理解它們的性質(zhì)、形狀和關(guān)系。并且,解析幾何通常需要進(jìn)行一系列的推導(dǎo)和計(jì)算過程,通過可視化技術(shù)可以將這些過程中的中間結(jié)果以圖形或動畫的形式展示出來,幫助人們更好地跟蹤和理解解析的思路和步驟??梢暬夹g(shù)可以幫助人們通過交互方式探索幾何性質(zhì)。例如,通過拖動幾何對象的頂點(diǎn)或參數(shù),可以實(shí)時觀察到圖形的變化,從而深入理解幾何對象的特點(diǎn)和規(guī)律。同時,可視化技術(shù)也為解析幾何的教學(xué)和學(xué)習(xí)提供了強(qiáng)大的工具。通過利用計(jì)算機(jī)軟件或在線交互工具,可以創(chuàng)建動態(tài)的幾何演示和實(shí)例,使學(xué)生更加主動參與,提高對解析幾何的興趣和理解。解析幾何的方法和技巧在各個領(lǐng)域都有廣泛的應(yīng)用,如計(jì)算機(jī)圖形學(xué)、計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、機(jī)器人學(xué)等??梢暬夹g(shù)能夠?qū)⒔馕鰩缀蔚母拍詈头椒ㄅc實(shí)際問題相結(jié)合,幫助人們更好地分析和解決現(xiàn)實(shí)世界中的幾何和空間關(guān)系問題??偟膩碚f,可視化技術(shù)在解析幾何中的應(yīng)用可以幫助人們更好地理解和應(yīng)用相關(guān)知識,從而提高解析幾何的教學(xué)效果和工程實(shí)踐的效率。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,可視化技術(shù)在解析幾何中的應(yīng)用前景將會更加廣闊。1.3論文結(jié)構(gòu)論文的每一章概要如下:第1章,緒論:先講述了論文的研究背景以及意義,之后講述國內(nèi)外發(fā)展概述,包括網(wǎng)絡(luò)學(xué)習(xí)、可視化技術(shù)以及可視化技術(shù)在解析幾何中應(yīng)用的發(fā)展背景和研究現(xiàn)狀,最后提出本論文的論文結(jié)構(gòu)。第2章,系統(tǒng)相關(guān)技術(shù)概述:本章講述了WebGL技術(shù)和一些相關(guān)的幾何圖形概述,包括Hilbert曲線,Delaunay三角網(wǎng)和Voronoi圖。第3章,系統(tǒng)分析:本章對系統(tǒng)進(jìn)行分析。對這個課題的可行性進(jìn)行分析,判斷設(shè)計(jì)方案的可行性。從功能的角度,對本課題的需要實(shí)現(xiàn)的功能進(jìn)行了分析;從非功能性的角度,對課題的可靠性進(jìn)行了分析。第4章,系統(tǒng)設(shè)計(jì):本章對系統(tǒng)進(jìn)設(shè)計(jì),其中對象的設(shè)計(jì)就是對系統(tǒng)的主體進(jìn)行分析,功能模塊的設(shè)計(jì)部分畫出流程圖,給出生成算法的思想流程,用圖片和文字加以敘述。第5章:系統(tǒng)實(shí)現(xiàn)。本章介紹Hilbert,Delaunay,Voronoi的生成算法的實(shí)現(xiàn)以及系統(tǒng)各個模塊功能的實(shí)現(xiàn),展示代碼附上算法流程圖并通過語言描述最后給出最后實(shí)現(xiàn)的界面。第6章:系統(tǒng)測試。本章在系統(tǒng)開發(fā)完成以后,對系統(tǒng)進(jìn)行測試。針對測試存在的問題進(jìn)行分析,及時改正系統(tǒng)問題。第7章:總結(jié)與展望。在本章節(jié)中,首先,對推薦系統(tǒng)進(jìn)行了總結(jié),并指出了系統(tǒng)需要改進(jìn)之處。然后,總結(jié)了自己在系統(tǒng)開發(fā)中的經(jīng)驗(yàn)和體會。系統(tǒng)相關(guān)技術(shù)概述2系統(tǒng)相關(guān)技術(shù)概述2.1WebGL技術(shù)WebGL是一項(xiàng)用于在Web瀏覽器中渲染3D圖形的技術(shù),它的發(fā)展歷史可以追溯到WebGL的前身——Mozilla實(shí)驗(yàn)室的Canvas3D項(xiàng)目。2006年,Mozilla實(shí)驗(yàn)室的VladimirVukicevic創(chuàng)建了Canvas3D項(xiàng)目,旨在使用HTML5Canvas元素在Web瀏覽器中渲染3D圖形。這項(xiàng)技術(shù)的原型使用JavaScript和OpenGLES2.0API,為Web開發(fā)者提供了一種新的方式來創(chuàng)建3D圖形和游戲。隨著HTML5標(biāo)準(zhǔn)的制定和Canvas元素的普及,Canvas3D項(xiàng)目成為了WebGL技術(shù)的基礎(chǔ)。2009年,Mozilla實(shí)驗(yàn)室在WebGL項(xiàng)目中實(shí)現(xiàn)了WebGL的第一個版本。WebGL使用OpenGLES2.0API,這是一種用于移動設(shè)備的OpenGL版本。WebGL提供了一種在Web瀏覽器中渲染3D圖形的標(biāo)準(zhǔn)方式,同時也提供了一個跨平臺、高性能的圖形渲染API。2010年,WebGL1.0規(guī)范被KhronosGroup發(fā)布。KhronosGroup是一個專門制定圖形標(biāo)準(zhǔn)的非營利組織,它是OpenGLES的創(chuàng)造者之一。WebGL的發(fā)布標(biāo)志著Web上3D圖形渲染技術(shù)的里程碑式進(jìn)步,同時也促進(jìn)了游戲和虛擬現(xiàn)實(shí)等行業(yè)的發(fā)展。WebGL的發(fā)展得到了各大瀏覽器廠商的支持,包括Google、Mozilla、Apple和Microsoft等。這些瀏覽器廠商紛紛推出了支持WebGL技術(shù)的瀏覽器版本,并不斷完善WebGL的實(shí)現(xiàn),提高了WebGL的性能和可靠性。2011年,Google推出了WebGL技術(shù)的新實(shí)現(xiàn)——ANGLE(AlmostNativeGraphicsLayerEngine),這是一個開源項(xiàng)目,旨在將OpenGLES2.0API轉(zhuǎn)換為DirectX9API或OpenGLAPI。ANGLE使得使用Windows操作系統(tǒng)的用戶也能夠享受WebGL帶來的3D圖形和游戲體驗(yàn)。2013年,WebGL2.0規(guī)范被發(fā)布。WebGL2.0相比于1.0版本增加了許多新的功能和擴(kuò)展,包括更高的圖形性能、更好的錯誤處理、更多的紋理格式和更豐富的著色器語言。WebGL2.0的發(fā)布進(jìn)一步提升了Web上的3D圖形渲染水平。發(fā)展史如圖2.1所示。圖2.1WebGL的發(fā)展WebGL的發(fā)展帶動了Web上的3D圖形和游戲的繁榮,越來越多的開發(fā)者開始使用WebGL技術(shù)來創(chuàng)建高質(zhì)量的3D圖形和游戲。WebGL技術(shù)的應(yīng)用也開始向其他領(lǐng)域拓展,例如工業(yè)設(shè)計(jì)、虛擬現(xiàn)實(shí)和醫(yī)學(xué)影像等。在工業(yè)設(shè)計(jì)領(lǐng)域,汽車、飛機(jī)等大型產(chǎn)品的設(shè)計(jì)可以借助WebGL實(shí)現(xiàn)更加精細(xì)的模型制作和展示,同時方便不同地點(diǎn)的設(shè)計(jì)師之間協(xié)同工作。在虛擬現(xiàn)實(shí)領(lǐng)域,WebGL技術(shù)可以實(shí)現(xiàn)更加逼真的3D場景[26],幫助用戶身臨其境地體驗(yàn)虛擬世界。在醫(yī)學(xué)影像領(lǐng)域,WebGL技術(shù)可以實(shí)現(xiàn)更加精準(zhǔn)的模型重建,幫助醫(yī)生更好地進(jìn)行病例診斷和治療計(jì)劃制定。WebGL技術(shù)的發(fā)展帶動了瀏覽器的發(fā)展。瀏覽器越來越強(qiáng)大,性能也越來越好,支持的WebGL版本也在不斷更新。同時,移動設(shè)備的普及也為WebGL應(yīng)用的發(fā)展帶來了新的機(jī)遇和挑戰(zhàn)。WebGL技術(shù)也逐漸融入到移動應(yīng)用的開發(fā)中,例如游戲和AR應(yīng)用等。目前所有主流瀏覽器(如Chrome、Firefox、Safari、Edge等)都已經(jīng)支持WebGL技術(shù),用戶可以在這些瀏覽器上無需任何插件或擴(kuò)展即可體驗(yàn)WebGL應(yīng)用。同時,也有許多第三方庫和框架(如three.js、Babylon.js等)可以幫助開發(fā)人員更加方便地使用WebGL來創(chuàng)建復(fù)雜的3D場景。見圖2.2:圖2.2各瀏覽器版本所支持的WebGL情況WebGL(WebGraphicsLibrary)是一種基于JavaScriptAPI的圖形渲染技術(shù),用于在Web瀏覽器中實(shí)現(xiàn)高性能的3D圖形渲染。下面是關(guān)于WebGL的一些理論知識:1.原理和架構(gòu):WebGL基于OpenGLES(OpenGLforEmbeddedSystems)標(biāo)準(zhǔn),提供了在Web瀏覽器中進(jìn)行硬件加速的3D圖形渲染能力。WebGL使用HTML5的<canvas>元素作為圖形渲染的目標(biāo),并通過JavaScript調(diào)用WebGLAPI來操作和控制圖形渲染的過程。WebGL將圖形渲染任務(wù)交給了圖形處理單元(GPU)來執(zhí)行,以實(shí)現(xiàn)高性能的渲染效果。2.語言和API:WebGL使用JavaScript作為主要的編程語言,開發(fā)者可以使用JavaScript編寫圖形渲染的邏輯和控制代碼。WebGL提供了一組底層的API,用于進(jìn)行圖形渲染相關(guān)的操作,例如創(chuàng)建和管理渲染上下文、定義和加載3D模型、設(shè)置著色器程序、繪制圖形等。3.圖形渲染管線:WebGL遵循基本的圖形渲染管線,包括幾何處理、頂點(diǎn)著色器、片段著色器等階段。幾何處理階段負(fù)責(zé)處理頂點(diǎn)數(shù)據(jù),進(jìn)行頂點(diǎn)變換、裁剪和投影等操作。頂點(diǎn)著色器階段用于對每個頂點(diǎn)進(jìn)行著色和變換操作。片段著色器階段用于對每個像素進(jìn)行顏色計(jì)算,包括光照、紋理映射等。4.數(shù)據(jù)和緩沖:WebGL使用緩沖區(qū)(buffer)來存儲和管理頂點(diǎn)數(shù)據(jù)、紋理數(shù)據(jù)等。頂點(diǎn)緩沖區(qū)(vertexbuffer)用于存儲頂點(diǎn)的位置、顏色和紋理坐標(biāo)等信息。索引緩沖區(qū)(indexbuffer)用于存儲圖元(如三角形)的索引信息,以便進(jìn)行高效的繪制。紋理緩沖區(qū)(texturebuffer)用于存儲和管理紋理圖像數(shù)據(jù),實(shí)現(xiàn)紋理映射效果。5.著色器編程:WebGL使用著色器程序來控制圖形的渲染和顯示效果。頂點(diǎn)著色器(vertexshader)負(fù)責(zé)處理每個頂點(diǎn)的位置和屬性,并進(jìn)行坐標(biāo)變換和光照計(jì)算等操作。片段著色器(fragmentshader)負(fù)責(zé)計(jì)算每個像素的顏色和光照效果。開發(fā)者可以使用GLSL(OpenGLShadingLanguage)編寫著色器程序,通過WebGLAPI將其加載和鏈接到渲染管線中。他的編寫過程類似于OpenGLES的編寫過程。下面是WebGL編寫的一般步驟:1.初始化WebGL上下文:使用JavaScript代碼創(chuàng)建一個HTML5畫布元素,并調(diào)用其`getContext()`方法來獲取WebGL上下文對象。2.設(shè)置視口和背景色:使用WebGL上下文的`viewport()`方法來設(shè)置視口大小和位置,并使用`clearColor()`方法來設(shè)置背景色。3.創(chuàng)建著色器:WebGL使用著色器來對場景進(jìn)行渲染,因此需要編寫著色器代碼。著色器是使用GLSL(OpenGLShadingLanguage)語言編寫的,包括頂點(diǎn)著色器和片段著色器兩種類型。4.編譯和鏈接著色器:使用WebGL上下文的`createShader()`方法創(chuàng)建著色器對象,并使用`shaderSource()`方法將著色器源碼附加到著色器對象上。然后,使用`compileShader()`方法將著色器編譯成可執(zhí)行的格式,并使用`createProgram()`方法創(chuàng)建一個程序?qū)ο?,并使用`attachShader()`和`linkProgram()`方法將頂點(diǎn)和片段著色器鏈接到程序?qū)ο笊稀?.創(chuàng)建頂點(diǎn)緩沖區(qū):使用WebGL上下文的`createBuffer()`方法創(chuàng)建一個頂點(diǎn)緩沖區(qū)對象,并使用`bindBuffer()`方法將其綁定到WebGL上下文中。6.傳遞頂點(diǎn)數(shù)據(jù):使用WebGL上下文的`bufferData()`方法將頂點(diǎn)數(shù)據(jù)傳遞到頂點(diǎn)緩沖區(qū)中。7.激活和傳遞頂點(diǎn)屬性:使用WebGL上下文的`getAttribLocation()`方法獲取頂點(diǎn)著色器中定義的屬性變量位置,然后使用`vertexAttribPointer()`方法激活和傳遞這些屬性變量。8.渲染場景:使用WebGL上下文的`clear()`方法清空畫布,并使用`drawArrays()`或`drawElements()`方法渲染場景。9.循環(huán)渲染:使用JavaScript代碼編寫渲染循環(huán),以不斷更新場景并重新渲染。總的來說,WebGL編寫的流程較為繁瑣和復(fù)雜,但可以實(shí)現(xiàn)高性能和高質(zhì)量的3D場景渲染效果,開發(fā)人員可以根據(jù)具體的需求和場景選擇不同的庫和框架來協(xié)助WebGL的開發(fā)?;赪ebGL創(chuàng)建網(wǎng)頁3D的一般過程如圖2.3所示:圖2.3WebGL繪制過程2.2三種幾何結(jié)構(gòu)理論基礎(chǔ)本平臺主要包含三種幾何結(jié)構(gòu),分別是Hilbert曲線,Delaunay三角網(wǎng),Voronoi圖。Hilbert曲線具有空間填充、數(shù)據(jù)壓縮與編碼、空間索引、圖像壓縮與漸進(jìn)傳輸以及數(shù)據(jù)可視化等方面的應(yīng)用優(yōu)勢。它在各種領(lǐng)域中被廣泛應(yīng)用,為數(shù)據(jù)處理、存儲和可視化等問題提供了有效的解決方案。Delaunay三角網(wǎng)具有三角網(wǎng)生成、空間插值和重構(gòu)、空間查詢和分析、地圖投影和網(wǎng)格生成、紋理映射和形狀變形等多個應(yīng)用優(yōu)勢。它為計(jì)算機(jī)圖形學(xué)、計(jì)算幾何和空間分析等領(lǐng)域的問題提供了強(qiáng)大的解決方案。Voronoi圖具有空間分析與查詢、區(qū)域分割與邊界劃分、位置插值與插值表面、隨機(jī)樣本生成與分布分析、數(shù)據(jù)可視化與圖形設(shè)計(jì)等多個應(yīng)用優(yōu)勢。它為計(jì)算幾何、計(jì)算機(jī)圖形學(xué)和空間分析等領(lǐng)域的問題提供了強(qiáng)大的解決方案。可以看出這三個幾何結(jié)構(gòu)都具有分成重要的應(yīng)用意義,因此本系統(tǒng)選擇了這三個幾何結(jié)構(gòu)來供學(xué)習(xí)。(1)Hilbert曲線從數(shù)學(xué)的角度上看,可以將空間填充曲線看成是一種把N維空間數(shù)據(jù)轉(zhuǎn)換到1維連續(xù)空間上的映射函數(shù)。實(shí)際上,存儲磁盤(常見的關(guān)系型數(shù)據(jù)庫)是一維的存儲設(shè)備,而空間數(shù)據(jù)大多都是多維數(shù)據(jù),很少存在一維順序。因此,為了使多維空間上鄰近的元素映射也盡可能是一維直線上鄰近的點(diǎn),專家們提出了許多的映射方法。希爾伯特曲線(如圖2.4所示)是填充曲線,類似的填充曲線包括Z曲線、格雷碼和其他一些曲線。希爾伯特曲線可以通過離散單元線性地遍歷兩個或多個維度,作為它們自己的空間填充曲線特性的函數(shù),只遍歷一次,并且每個離散單元被線性排序和編碼為該單元的唯一標(biāo)識??臻g填充曲線可以將高維空間中的無序數(shù)據(jù)映射到一維空間中,這允許空間中的相鄰對象與塊相鄰地存儲,減少IO時間,并提高存儲器中數(shù)據(jù)處理的效率。圖2.4Hilbert曲線Hilbert曲線的構(gòu)造方法本質(zhì)上是一個遞歸過程,因此當(dāng)我們要構(gòu)造n階的Hilbert曲線時,可以先構(gòu)造4個n-1階的Hilbert曲線,這4個n-1階的Hilbert曲線通過特定的順序連接起來。其實(shí)連接順序就只有4種,跟1階Hilbert相似,不過開口方向不同而已。這四個變換不存在錯切,只需要考慮縮放、旋轉(zhuǎn)和平移,4個變換分別為:W1=00.500.500W3=0.500.500.50.500(2)Delaunay三角網(wǎng)Delaunay三角網(wǎng)(如圖2.5所示)是對于平面上給定的一組離散的點(diǎn)集,對它進(jìn)行三角劃分。Delaunay三角剖分本質(zhì)上不是一個真正的算法,而只是一個“好”三角形網(wǎng)格的定義,它有空圓特性和最大化最小角兩個優(yōu)秀的特性,這有效避免了狹長三角形的產(chǎn)生。其中空洞圓性質(zhì)是指對于Delaunay三角網(wǎng)當(dāng)中的任何一個Delaunay三角形,做他的外接圓,在這個外接圓的內(nèi)部,不會包含其他任何的一個隨機(jī)點(diǎn)。最大化最小角指的是在三角網(wǎng)當(dāng)中,取其中任意兩個相鄰的Delaunay三角形組成的四邊形,這個四邊形有六個內(nèi)角(因?yàn)閮蓚€三角形有一條公共邊,將其劃分為六個內(nèi)角),這六個內(nèi)角中最小的角記為a。將這個四邊形換一個對角線,重新產(chǎn)生六個內(nèi)角,最小的角記為b,則a<=b恒成立。四點(diǎn)共圓性判定的公式如下:給定四個不共線的點(diǎn)A(x[0],y[0]),B(x[1],y[1]),C(x[2],y[2]),D(x[3],y[3]),它們構(gòu)成一個Delaunay三角網(wǎng)的條件是,四點(diǎn)所形成的外接圓不包含其他的點(diǎn)。公式為:(x[0]^2+y[0]^2)(x[1]-x[2])(x[3]-x[2])+(x[1]^2+y[1]^2)(x[2]-x[0])(x[3]-x[0])+(x[2]^2+y[2]^2)(x[0]-x[1])(x[3]-x[1])+(x[3]^2+y[3]^2)(x[1]-x[0])(x[2]-x[0])=0(5)以及(x[0]^2+y[0]^2)(y[2]-y[1])(y[3]-y[1])+(x[1]^2+y[1]^2)(y[0]-y[2])(y[3]-y[2])+(x[2]^2+y[2]^2)(y[1]-y[0])(y[3]-y[0])+(x[3]^2+y[3]^2)(y[2]-y[0])(y[1]-y[0])=0(6)其中,(x[i],y[i])表示第i個點(diǎn)的坐標(biāo),(x,y)表示欲判斷的點(diǎn)的坐標(biāo)。如果(x,y)在外接圓內(nèi),則四點(diǎn)不滿足Delaunay條件。生成Delaunay三角網(wǎng)的常見方法有暴力法、遞歸法、重心法、分治法暴力法是一種基本的生成Delaunay三角網(wǎng)的方法,其基本思想是:從點(diǎn)集中依次取出每個點(diǎn),并找到所有不以該點(diǎn)為頂點(diǎn)的三角形,判斷該點(diǎn)是否在這些三角形的外接圓內(nèi)。若該點(diǎn)不在任何三角形的外接圓內(nèi),則以該點(diǎn)與這些不以該點(diǎn)為頂點(diǎn)的三角形的三個頂點(diǎn)為頂點(diǎn)生成新的三角形,同時將這些三角形從原來的三角形集合中刪除,并將新生成的三角形加入集合。該方法的時間復(fù)雜度為O(n^4)。遞歸法是一種比暴力法更高效的生成Delaunay三角網(wǎng)的方法。其基本思想是:將點(diǎn)集分為兩部分,分別生成它們的Delaunay三角網(wǎng),然后將它們合并成一個Delaunay三角網(wǎng)。合并的過程中需要對兩個Delaunay三角網(wǎng)的邊界進(jìn)行合并,這個過程可以使用合并Hull的方法來實(shí)現(xiàn)。該方法的時間復(fù)雜度為O(nlogn)。重心法是一種生成Delaunay三角網(wǎng)的常用方法之一。其基本思想是:首先將點(diǎn)集中的點(diǎn)連接成一個大的三角形,然后將每個新加入的點(diǎn)插入到三角網(wǎng)中,并調(diào)整相鄰三角形的連接關(guān)系,以維持Delaunay三角網(wǎng)的性質(zhì)。插入點(diǎn)的位置是在對應(yīng)的三角形的重心處,即三角形三個頂點(diǎn)的平均值處。該方法的時間復(fù)雜度為O(n^2)。分治法是一種生成Delaunay三角網(wǎng)的常用方法之一。其基本思想是:將點(diǎn)集按照x軸坐標(biāo)進(jìn)行排序,然后將點(diǎn)集分為左右兩部分,分別生成它們的Delaunay三角網(wǎng),然后將它們合并成一個Delaunay三角網(wǎng)。合并的過程中需要對兩個Delaunay三角網(wǎng)的邊界進(jìn)行合并,這個過程可以使用合并Hull的方法來實(shí)現(xiàn)。該方法的時間復(fù)雜度為O(nlogn)。圖2.5Delaunay三角網(wǎng)(3)Voronoi圖Voronoi圖(如圖2.6所示)是一種基于點(diǎn)集的圖形表示方法,它將平面或空間分割成一系列的多邊形或多面體,每個多邊形或多面體都由距離最近的點(diǎn)組成。Voronoi圖的構(gòu)造方法是,以點(diǎn)集中的每個點(diǎn)為圓心,構(gòu)造一個圓或球形區(qū)域,然后將每個區(qū)域的邊界連接起來,形成一系列的多邊形或多面體,這些多邊形或多面體就是Voronoi圖的基本單位。對于一組點(diǎn)集P={p1,p2,...,pn},Voronoi圖V(P)是由所有使得每個點(diǎn)pi到其最近鄰點(diǎn)之間的距離最小的點(diǎn)構(gòu)成的區(qū)域組成的圖形結(jié)構(gòu)。對于點(diǎn)集P中的每個點(diǎn)pi,其Voronoi區(qū)域Vor(pi)是與pi最近的所有點(diǎn)構(gòu)成的凸多邊形或多面體。對于點(diǎn)集P中的每條邊ei,其對應(yīng)的Voronoi邊Vor(ei)是相鄰兩個點(diǎn)pi和pj的垂直平分線(二維情況)或垂直平面(三維情況)。Voronoi圖可以通過一些算法來計(jì)算,其中一種常用的算法是Fortune's算法。該算法基于掃描線的思想,在不斷更新掃描線的過程中構(gòu)建Voronoi圖。Voronoi圖可以用數(shù)學(xué)表達(dá)式表示。假設(shè)點(diǎn)pi的坐標(biāo)為(xi,yi),則點(diǎn)pi到其最近鄰點(diǎn)pj的距離為d(pi,pj)=sqrt((xi-xj)^2+(yi-yj)^2)(7)Voronoi圖可以表示為一組以點(diǎn)pi為中心,半徑為d(pi,pj)的圓或球,其中pj是pi的最近鄰點(diǎn)。下面介紹一下生成Voronoi圖的常用算法:1.Fortune算法Fortune算法是一種高效的Voronoi圖生成算法,它基于掃描線算法和平衡樹數(shù)據(jù)結(jié)構(gòu)。該算法首先將種子點(diǎn)按照y軸坐標(biāo)進(jìn)行排序,然后按順序遍歷這些點(diǎn),同時維護(hù)一個前綴邊集合和一個事件隊(duì)列。在遍歷過程中,不斷處理事件隊(duì)列中的事件,每當(dāng)遇到一個新的種子點(diǎn)時,就會根據(jù)前綴邊集合構(gòu)建一個新的Voronoi圖單元,并將相關(guān)的邊添加到前綴邊集合中。該算法的時間復(fù)雜度為O(nlogn)。2.Delaunay三角剖分Delaunay三角剖分是一種基于Voronoi圖的生成方法,它先生成一個Delaunay三角剖分,然后通過對Delaunay三角形進(jìn)行對偶轉(zhuǎn)換來得到Voronoi圖。具體地,對于每個Delaunay三角形的外接圓心,都可以得到一個對應(yīng)的Voronoi圖頂點(diǎn)。對于兩個相鄰的Delaunay三角形,它們的外接圓心之間的連線就對應(yīng)著Voronoi圖上的一條邊。Delaunay三角剖分是一種常見的離散化方法,在計(jì)算機(jī)圖形學(xué)和計(jì)算機(jī)視覺等領(lǐng)域得到廣泛應(yīng)用。3.Lloyd松弛算法Lloyd松弛算法是一種迭代算法,用于優(yōu)化一個已知的點(diǎn)集的Voronoi圖。該算法首先將初始點(diǎn)集的Voronoi圖計(jì)算出來,然后將每個Voronoi圖單元的重心移動到包含它的多邊形的重心處。然后,再根據(jù)新的點(diǎn)集重新計(jì)算Voronoi圖。該算法可以重復(fù)執(zhí)行多次,每次迭代都會使Voronoi圖更加平滑。該算法的應(yīng)用包括計(jì)算幾何、圖像處理等領(lǐng)域。圖2.6Voronoi圖2.3本章小結(jié)本章主要介紹與本系統(tǒng)相關(guān)的WebGL技術(shù)和三種幾何結(jié)構(gòu)。其中WebGL是一種基于JavaScriptAPI的圖形渲染技術(shù),用于在Web瀏覽器中實(shí)現(xiàn)高性能的3D圖形渲染,這將有利于系統(tǒng)的圖形可視化展示。三種幾何結(jié)構(gòu),分別是Hilbert曲線,Delaunay三角網(wǎng),Voronoi圖。給出了Hilbert曲線的定義以及生成他的方法。給出了Delaunay三角網(wǎng)的應(yīng)用,定義和一些生成的常用算法。給出了Voronoi圖的介紹和他的一些常用的生成方法。通過本章,可以對系統(tǒng)中的一些技術(shù)與幾何概念有初步的了解。系統(tǒng)需求分析3系統(tǒng)需求分析3.1功能分析3.1.1總體功能分析基于WebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺是為了能夠使用戶直觀地學(xué)習(xí)、理解一些幾何結(jié)構(gòu)而設(shè)計(jì)出來的。本平臺根據(jù)實(shí)際應(yīng)用需求,應(yīng)包括登陸注冊,通過本功能獲取進(jìn)入系統(tǒng)的權(quán)限;修改個人信息,通過本功能可以更改信息;圖形收藏,通過本功能可以收藏那些感興趣的幾何結(jié)構(gòu);圖形查看,可以查看圖形的基本信息;圖形生成,允許用戶直觀地看到他們的生成,獲得進(jìn)一步了解;圖形性質(zhì)學(xué)習(xí),可以讓用戶直觀地看到幾何結(jié)構(gòu)的性質(zhì)究竟是怎樣的等主要功能,如圖3.1所示。圖3.1幾何結(jié)構(gòu)學(xué)習(xí)平臺主要功能其中,圖形操作中的操作對象包括三種不同的幾何結(jié)構(gòu),分別是Hilbert圖、Delaunay三角網(wǎng)、Voronoi圖。這三個幾何結(jié)構(gòu)由于生成方式,驗(yàn)證性質(zhì)的不同,可以劃分成不同的子系統(tǒng),分別對他們進(jìn)行需求分析。幾何結(jié)構(gòu)學(xué)習(xí)平臺按照功能的獨(dú)立性,可以劃分為5個子系統(tǒng),如圖3.2所示。圖3.2幾何結(jié)構(gòu)學(xué)習(xí)平臺子系統(tǒng)分解圖下面分別分析每個子系統(tǒng)的功能需求。3.1.2用戶管理用戶管理包含登陸注冊以及個人信息的修改,主要的功能點(diǎn)包括用戶登錄,在賬號密碼匹配時可以正常登錄;用戶注冊,用戶名不可以重復(fù),兩次密碼應(yīng)該一致;用戶信息修改,用戶可以在系統(tǒng)中隨時修改自己的信息;查看個人信息,用戶可以在系統(tǒng)中隨時查看自己的信息。用例圖如圖3.3所示。圖3.3用戶中心用例圖3.1.3圖形查看與收藏圖形查看包括的功能點(diǎn)有查看幾何結(jié)構(gòu)的名稱,用戶可以查看自己感興趣的幾何結(jié)構(gòu)叫什么名字;對幾何結(jié)構(gòu)進(jìn)行收藏,用戶可以在圖形操作界面對幾何結(jié)構(gòu)進(jìn)行收藏;刪除收藏的幾何結(jié)構(gòu),用戶可以在收藏界面刪除已經(jīng)收藏的幾何結(jié)構(gòu);查看幾何結(jié)構(gòu)的簡介,用戶可以查看感興趣的幾何結(jié)構(gòu)的介紹;查看幾何結(jié)構(gòu)的圖片,用戶可以查看感興趣的幾何結(jié)構(gòu)的圖片。用例圖如圖3.4所示。圖3.4幾何圖形的查看與收藏用例圖3.1.4Hilbert學(xué)習(xí)Hilbert學(xué)習(xí)子系統(tǒng)當(dāng)中,包含的功能點(diǎn)有:生成指定的Hilbert圖,用戶在Hilbert學(xué)習(xí)界面輸入生成要求之后,可以生成對應(yīng)的Hlibert圖;生成指定的Hilbert邊,用戶在輸入想要查看的邊的Hilbert坐標(biāo)后,可以查看對應(yīng)的邊;展示迭代每個子象限中的Hilbert樣貌,用戶可以在迭代性質(zhì)的界面查看迭代中每個象限對應(yīng)的圖形是什么樣子的;展示比較迭代前后的圖,用戶在迭代界面,可以比較迭代前后的圖,從而找到彼此之間的關(guān)聯(lián)。用例圖如圖3.5所示。圖3.5Hilbert學(xué)習(xí)用例圖3.1.5Delaunay學(xué)習(xí)Delaunay學(xué)習(xí)模塊包括的功能點(diǎn)有:展示隨機(jī)生成的點(diǎn),用戶在輸入隨機(jī)點(diǎn)個數(shù)之后后,這些點(diǎn)會在界面上展示,以便之后使用;生成對應(yīng)的Delaunay三角網(wǎng),用戶在確定隨機(jī)點(diǎn)個數(shù)之后,可以生成對應(yīng)的Delaunay三角網(wǎng);通過圖形學(xué)習(xí)空洞圓性質(zhì),用戶在生成Delaunay三角網(wǎng)之后,可以對生成的這個三角網(wǎng)進(jìn)行空洞圓性質(zhì)的學(xué)習(xí)查看;學(xué)習(xí)最小角最大化性質(zhì),在生成三角網(wǎng)之后,可以查看這個三角網(wǎng)的最小角最大化性質(zhì)。用例圖如圖3.6所示。圖3.6Delaunay學(xué)習(xí)用例圖3.1.6Voronoi學(xué)習(xí)Voronoi學(xué)習(xí)模塊包含的功能點(diǎn)有生成Voronoi對應(yīng)的Delaunay三角網(wǎng),在輸入想要生成的隨機(jī)點(diǎn)個數(shù)之后,可以生成對應(yīng)的Delaunay三角網(wǎng);生成Voronoi圖,在Delaunay三角網(wǎng)的基礎(chǔ)之上,可以繼續(xù)生成Voronoi圖;展示兩者的圖形及關(guān)聯(lián),可以將兩者放入一張圖中進(jìn)行比較查看,看出兩者聯(lián)系。用例圖如圖3.7所示。圖3.7Voronoi學(xué)習(xí)用例圖3.2非功能分析3.2.1性能分析本項(xiàng)目為學(xué)習(xí)平臺,與生活緊密聯(lián)系。為了避免惡意破壞用戶的個人信息,需要保證系統(tǒng)的穩(wěn)定、安全、方便,并且便于管理和升級。響應(yīng)速度:對一般操作而言,響應(yīng)的時間不能超過5秒,刷新系統(tǒng)頁面的時間不能超過4秒,系統(tǒng)內(nèi)各交互功能的反應(yīng)速度不超過5秒。故障處理:如果系統(tǒng)頁面長時間沒有響應(yīng),則及時發(fā)出信息提示,引導(dǎo)用戶刷新頁面或者重新進(jìn)入頁面。頁面加載時間過長,也要給出提示信息,以防用戶認(rèn)為系統(tǒng)存在問題??煽啃?平均故障時間間隔不低260小時。能夠快速恢復(fù)系統(tǒng),或者對系統(tǒng)故障進(jìn)行處理,方便系統(tǒng)升級和系統(tǒng)擴(kuò)充??臻g要求:cpu使用率50%,內(nèi)存使用率小于50%。3.2.2安全性分析系統(tǒng)的安全性分析是評估系統(tǒng)中安全性方面的弱點(diǎn)和潛在威脅的過程。這個過程可以幫助我們發(fā)現(xiàn)系統(tǒng)中存在的漏洞并且采取措施來解決這些問題,保護(hù)系統(tǒng)的完整性、保密性和可用性。在這里,我將通過以下幾個方面來進(jìn)行系統(tǒng)的安全性分析:1.身份驗(yàn)證和訪問控制:這是保護(hù)系統(tǒng)的核心部分。對于身份驗(yàn)證和訪問控制的強(qiáng)度將直接影響系統(tǒng)的安全性。我們需要檢查系統(tǒng)中使用的身份驗(yàn)證方式是否安全、密碼強(qiáng)度是否夠高、是否需要進(jìn)行多重身份驗(yàn)證等方面,同時需要確保授權(quán)機(jī)制是正確的,只有經(jīng)過授權(quán)的用戶才能訪問受保護(hù)的資源。2.數(shù)據(jù)安全性:系統(tǒng)中存儲的數(shù)據(jù)需要保證安全性。這包括數(shù)據(jù)加密、訪問控制、備份和恢復(fù)等方面。我們需要檢查數(shù)據(jù)的加密算法是否足夠強(qiáng),存儲的位置是否安全、備份和恢復(fù)策略是否合理,以及數(shù)據(jù)訪問的權(quán)限控制是否足夠嚴(yán)格等方面。3.系統(tǒng)和網(wǎng)絡(luò)安全性:我們需要對系統(tǒng)的網(wǎng)絡(luò)安全性進(jìn)行評估。這包括檢查網(wǎng)絡(luò)拓?fù)?、網(wǎng)絡(luò)接口和網(wǎng)絡(luò)防火墻是否配置正確。另外,我們需要檢查系統(tǒng)的操作系統(tǒng)和應(yīng)用程序是否及時更新,是否存在已知的漏洞,是否存在未授權(quán)訪問的風(fēng)險。4.監(jiān)測和響應(yīng):監(jiān)測和響應(yīng)是確保系統(tǒng)安全的重要組成部分。我們需要確保系統(tǒng)能夠及時發(fā)現(xiàn)潛在的安全問題,并能夠采取適當(dāng)?shù)拇胧?yīng)對這些問題,以減少對系統(tǒng)的影響。3.2.3易用性分析系統(tǒng)的易用性分析是評估系統(tǒng)用戶界面和用戶體驗(yàn)的過程。通過對系統(tǒng)易用性的分析,我們可以確定系統(tǒng)中存在的問題,并采取措施改善用戶體驗(yàn)。在這里,我將通過以下幾個方面來進(jìn)行系統(tǒng)的易用性分析:1.界面設(shè)計(jì):系統(tǒng)的界面設(shè)計(jì)需要考慮到用戶的使用習(xí)慣和用戶需求。我們需要檢查系統(tǒng)的界面是否簡潔明了,是否易于理解和操作,是否有足夠的反饋和引導(dǎo),以及是否符合用戶的期望。2.功能完整性:系統(tǒng)的功能需要滿足用戶的需求。我們需要檢查系統(tǒng)的功能是否完整,是否滿足用戶的需求,以及是否易于使用。同時,我們還需要考慮到不同用戶的需求和使用場景,從而確保系統(tǒng)的功能可以滿足不同用戶的需求。3.響應(yīng)速度:系統(tǒng)的響應(yīng)速度對于用戶體驗(yàn)非常重要。我們需要檢查系統(tǒng)的響應(yīng)速度是否足夠快,是否會因?yàn)橄到y(tǒng)負(fù)載而變慢,以及是否會影響用戶的操作體驗(yàn)。3.3可行性分析3.3.1技術(shù)可行性分析評估項(xiàng)目的技術(shù)可行性,包括技術(shù)難度、技術(shù)成熟度、技術(shù)風(fēng)險、技術(shù)資源等,以確定項(xiàng)目是否有足夠的技術(shù)支持和能力來實(shí)現(xiàn)?;赪ebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺在開發(fā)時,使用Java語言是當(dāng)前最好的面向?qū)ο缶幊陶Z言,能夠?qū)崿F(xiàn)代碼編寫。在此系統(tǒng)的開發(fā)過程中,數(shù)據(jù)庫也是一個重要的中心環(huán)節(jié)。本人學(xué)習(xí)過相關(guān)課程,對相關(guān)技術(shù)掌握程度較好。因此,在技術(shù)層面上,本系統(tǒng)的總體開發(fā)和設(shè)計(jì)具有一定的現(xiàn)實(shí)意義。3.3.2經(jīng)濟(jì)可行性分析評估項(xiàng)目的經(jīng)濟(jì)可行性,包括成本估算、收益預(yù)測、現(xiàn)金流預(yù)測、財(cái)務(wù)指標(biāo)評估等,以確定項(xiàng)目的投資回報率和財(cái)務(wù)風(fēng)險?;赪ebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺在設(shè)計(jì)時,對計(jì)算機(jī)的配置并沒有太多的要求,即使是配置不高的計(jì)算機(jī)也能很好的完成軟件的設(shè)計(jì)。無需大量的開發(fā)者,也無需購買任何軟件。該系統(tǒng)的設(shè)計(jì)完全是個人的設(shè)計(jì),節(jié)省大量的費(fèi)用,本系統(tǒng)旨在對以往所學(xué)知識進(jìn)行系統(tǒng)的整理和總結(jié),提高學(xué)生在實(shí)踐中的運(yùn)用能力。這樣可以減少人工費(fèi)用,還可以節(jié)省很多的信息資源,減少處理信息的時間,改進(jìn)信息管理的有效性。因此,開發(fā)這個系統(tǒng)并不存在經(jīng)濟(jì)問題,而且非常實(shí)用。3.3.3社會可行性分析評估項(xiàng)目的社會可行性,包括環(huán)境影響、社會效益、法律法規(guī)等,以確定項(xiàng)目是否符合社會公共利益和法律法規(guī)要求?;赪ebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺在設(shè)計(jì)時旨在幫助使用者更加清晰直觀地了解幾何結(jié)構(gòu),明白他們的性質(zhì)。從對社會影響方面來看,它能夠一定程度上激起學(xué)生的學(xué)習(xí)熱情,減輕教師的教學(xué)負(fù)擔(dān)。從社會效益來看,他對教育行業(yè)的發(fā)展具有積極的影響,能夠?yàn)樯鐣砹己玫男б?。能夠增?qiáng)學(xué)習(xí)者的學(xué)習(xí)興趣和參與度,激發(fā)學(xué)習(xí)熱情和積極性,使學(xué)習(xí)過程更加愉悅和有趣。另外,它也可以拓展學(xué)習(xí)方式,為學(xué)習(xí)者提供更加靈活、多樣化的學(xué)習(xí)途徑,滿足不同學(xué)習(xí)風(fēng)格和需求的學(xué)習(xí)者。因此,它滿足社會效益,不會為社會帶來負(fù)面影響。3.4本章小結(jié)需求分析是論文寫作的關(guān)鍵環(huán)節(jié)之一,它主要包括對研究目的、研究問題、研究方法和研究范圍等方面的分析和探討。在需求分析板塊中,我們通過對文獻(xiàn)、市場調(diào)查和用戶調(diào)查等多種途徑進(jìn)行數(shù)據(jù)收集和分析,以明確研究對象的需求和期望,確定研究的重點(diǎn)和方向,從而確保研究的有效性和可行性。本章進(jìn)行了系統(tǒng)的需求分析,主要包括功能需求,非功能需求和可行性分析。結(jié)合實(shí)際,判斷項(xiàng)目的可靠性,讓系統(tǒng)能夠更好的滿足用戶的需求。系統(tǒng)設(shè)計(jì)4系統(tǒng)設(shè)計(jì)4.1系統(tǒng)總體功能設(shè)計(jì)本次開發(fā)了一個幾何結(jié)構(gòu)學(xué)習(xí)系統(tǒng)。系統(tǒng)主要功能有:登陸注冊,查看幾何圖形生成,查看圖形的性質(zhì),收藏,查看個人信息等等。系統(tǒng)主要分為兩個模塊:用戶中心模塊和圖形操作模塊。用戶中心模塊中主要都是與用戶基本信息相關(guān)的操作。圖形操作模塊中主要是和圖形相關(guān)的操作。本系統(tǒng)設(shè)計(jì)的總體結(jié)構(gòu)圖如圖4.1所示:圖4.1系統(tǒng)總體模塊設(shè)計(jì)圖其中,圖形管理模塊下面包含三種不同的幾何結(jié)構(gòu),分別為Hilbert,Delaunay,Voronoi。這三個幾何結(jié)構(gòu)可以分解為不同的功能模塊,功能模塊分解如下。1.Hilbert分解Hilbert學(xué)習(xí)可以分解為生成指定的Hilbert圖,生成指定的Hilbert邊,展示迭代每個子象限中的Hilbert樣貌,展示比較迭代前后的圖。分解如圖4.2所示。圖4.2Hilbert功能模塊分解圖2.Delaunay分解Delaunay可以分解為展示隨機(jī)生成的點(diǎn)、展示對應(yīng)的Delaunay三角網(wǎng),通過圖形學(xué)習(xí)空洞圓性質(zhì),學(xué)習(xí)最小角最大化性質(zhì)。分解如圖4.3所示。圖4.3Delaunay功能模塊分解圖3.Voronoi分解Voronoi可以分解為生成Voronoi對應(yīng)的Delaunay三角網(wǎng),生成Voronoi圖,同時展示兩者的圖形及關(guān)聯(lián)。分解如圖4.4所示。圖4.4Voronoi功能模塊分解圖4.2系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)本系統(tǒng)數(shù)據(jù)庫采用MySQL。MySQL的發(fā)展始于1995年,由瑞典開發(fā)人員MichaelWidenius和DavidAxmark創(chuàng)建,并于1995年首次發(fā)布。隨著互聯(lián)網(wǎng)的快速發(fā)展和開源軟件的普及,MySQL的用戶數(shù)量快速增長,并且得到了許多大型公司的支持和采用,如Facebook、Google、Twitter等。MySQL的主要特點(diǎn)是速度、穩(wěn)定性和易用性。它支持多種操作系統(tǒng),包括Linux、Windows和MacOS等,還支持多種編程語言,如PHP、Java、Python等。此外,MySQL還提供了強(qiáng)大的安全性、事務(wù)支持和可擴(kuò)展性,使得它適用于各種不同規(guī)模和復(fù)雜度的應(yīng)用程序。MySQL的核心是由C和C++編寫的MySQLServer,它是一個單獨(dú)的進(jìn)程,負(fù)責(zé)處理所有的數(shù)據(jù)庫操作。MySQL客戶端可以通過多種方式與MySQLServer進(jìn)行通信,如命令行、圖形用戶界面和Web應(yīng)用程序等。總的來說,MySQL是一種功能強(qiáng)大、易于使用和廣泛采用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它為各種應(yīng)用程序提供了可靠的數(shù)據(jù)存儲和管理。4.2.1數(shù)據(jù)庫E-R圖通過規(guī)劃“基于WebGL的幾何結(jié)構(gòu)學(xué)習(xí)平臺”的功能,可以分出多個實(shí)體信息,實(shí)體信息可通過E-R圖來表明??侲-R圖如下圖4.5所示。其中用戶實(shí)體包含用戶編號、用戶昵稱、密碼、郵箱四個基本屬性,其中主屬性是用戶編號。收藏夾實(shí)體包括編號和圖形數(shù)量兩個基本屬性,其中主屬性為編號。幾何圖形實(shí)體包含圖形編號,圖形名稱,圖形介紹,其中主屬性為圖形編號。用戶和幾何圖形具有多對多可以學(xué)習(xí)的聯(lián)系,用戶和收藏夾具有一對多擁有的聯(lián)系,收藏夾和幾何圖形具有多對多包含的聯(lián)系。圖4.5系統(tǒng)總ER圖4.2.2系統(tǒng)表結(jié)構(gòu)設(shè)計(jì)把數(shù)據(jù)庫概念設(shè)計(jì)的E-R圖轉(zhuǎn)變?yōu)殛P(guān)系數(shù)據(jù)庫。用戶表:用來存放用戶的相關(guān)信息。本表主要屬性有:序號(id),用戶名(username),密碼(password),聯(lián)系方式(tel),郵箱(email),出生日期(birth)。本表主鍵為用戶id,具體內(nèi)容如下表4.1所示。表4.1user表列名數(shù)據(jù)類型長度約束idint10PRIMARYKEYusernamevarchar255NOTNULLpasswordvarchar255NOTNULLtelint11emailvarchar30幾何圖形表:用來存放圖形的相關(guān)信息。本表主要屬性有:圖形id(FigureId),圖形名(FigureName),簡介(FigureText),具體內(nèi)容如下表4.2所示。表4.2figure表列名數(shù)據(jù)類型長度約束FigureIdint10PRIMARYKEYFigureNamevarchar20NOTNULLFigureTexttext收藏表:本表是歌曲和歌單的關(guān)聯(lián)表。主要屬性為:序號(collectId),用戶id(id),圖形id(figureId),具體內(nèi)容如下表4.3所示。表4.3user-figure表列名數(shù)據(jù)類型長度約束collectIdint10PRIMARYKEYidint10FOREIGNKEYfigureIdint10FOREIGNKEY4.2.3接口設(shè)計(jì)本系統(tǒng)包含以下接口,如下所示:(1)/collect/queryFigure查詢對應(yīng)幾何結(jié)構(gòu)信息(2)/collect/save保存收藏幾何結(jié)構(gòu)(3)/collect/delete刪除收藏的幾何結(jié)構(gòu)(4)/user/queryUserByUsername根據(jù)用戶名查詢用戶(5)/user/queryUserByUsernameAndPassword根據(jù)用戶名和密碼查詢用戶(6)/user/saveUser保存用戶信息(7)/user/updateUser更新用戶信息4.3系統(tǒng)詳細(xì)設(shè)計(jì)4.3.1系統(tǒng)業(yè)務(wù)流程本系統(tǒng)的主要功能有:登陸注冊,用戶可以注冊自己的賬號并登錄;查看幾何圖形生成,用戶可以查看圖形生成后的結(jié)構(gòu),對圖形有初步的了解;查看圖形的性質(zhì),用戶可以查看圖形的性質(zhì),并能夠?qū)ζ溥M(jìn)行一定的了解;收藏,用戶可以收藏圖形;查看個人信息,用戶可以查看自己的信息;修改個人信息:用戶可以修改自己的信息。該系統(tǒng)的業(yè)務(wù)流程圖如下圖4.6所示。圖4.6業(yè)務(wù)流程圖用戶輸入網(wǎng)址進(jìn)入首頁后,選擇登錄,若沒有賬號則注冊。在登陸成功后,可以在首頁查看幾何結(jié)構(gòu)的基本信息。選擇某一個幾何結(jié)構(gòu)之后,進(jìn)入相應(yīng)的界面,輸入想要進(jìn)行的操作要求即可查看對應(yīng)圖形或?qū)W習(xí)對應(yīng)的性質(zhì)。若想收藏,可以點(diǎn)擊收藏按鈕。在收藏界面,點(diǎn)擊刪除,可以刪除收藏項(xiàng)目。4.3.2用戶中心模塊用戶通過用戶昵稱以及密碼注冊,并且輸入自己的信息,用戶昵稱不可重復(fù),兩次密碼需要一致。注冊成功后會跳轉(zhuǎn)至登陸界面,登陸成功后跳轉(zhuǎn)至首頁。登陸成功后,在導(dǎo)航欄,可以選擇查看自己的信息,在信息查看界面可以修改自己的信息。流程圖如下圖4.7所示。圖4.7用戶中心模塊流程圖4.3.3圖形操作模塊用戶在主頁選擇先要學(xué)習(xí)的幾何結(jié)構(gòu),點(diǎn)擊進(jìn)入詳情界面,對幾何圖形進(jìn)行具體的操作,在登陸之后可以對其進(jìn)行收藏,在個人收藏中查看。流程圖如下圖4.8所示。圖4.8圖形操作模塊流程圖4.4Hilbert生成算法設(shè)計(jì)因?yàn)镠ilbert有迭代的特性,所以在生成Hilbert圖的時候,可以利用這一特性。最開始的圖形為一格,可以跳過。在2x2的方格當(dāng)中,也就是一次迭代的一個區(qū)域,不難發(fā)現(xiàn),可以用一個“U”形來訪問所有區(qū)域,當(dāng)然“U”形的開口方向并不固定,如圖4.9所示為其中一種。在進(jìn)行二次迭代(4x4方格)的時候,可以將一次迭代的“U”形放在四個象限之中,然后為了能夠使得每個象限在進(jìn)行連接時能夠順利進(jìn)行,要在每個象限中確定“U”形的開口朝向,其中一種方式如圖4.10所示。然后,可以將這一次迭代的圖形再看做一個“U”形,繼續(xù)以同樣的方式進(jìn)行下一次迭代。這樣循環(huán)下去,就可以順利得出第N次迭代的圖形,從而在系統(tǒng)中展示出來。圖4.9“U”形訪問區(qū)域圖4.10“U”形區(qū)域迭代最初的“U”形圖構(gòu)造很簡單,只需要選定一個方向和一個起始點(diǎn),繞各象限環(huán)繞一周便可以形成,我們用0到3來表示環(huán)繞象限的順序(在操作時,這里采用二進(jìn)制形式,即:0用00表示,1用01表示,2用10表示,3用11表示),如圖4.11所示。圖4.11“U”形圖構(gòu)造為了保證整體連接性,在訪問子象限時,可以看出這是有規(guī)律的,一共只有四種情況。之后,由于迭代,這種性質(zhì)同樣適用于之后產(chǎn)生的任一子象限。于是,對于任一給出的象限,所畫出的曲線是由上一級曲線的形狀以及該象限的位置所決定的。構(gòu)建出所有情況,如下圖4.12所示。圖4.12Hilbert迭代圖假設(shè)最上層的迭代方式均為第一種方式,則可以根據(jù)所給的坐標(biāo)找出對應(yīng)的象限,然后根據(jù)當(dāng)前象限在以第一種方式進(jìn)行迭代時所在的順序數(shù),在現(xiàn)有Hilbert坐標(biāo)(初始為0)上累加;同時,也可以得到上一級的迭代方式,然后就可以將這個子象限作為最上層的迭代。不斷循環(huán),可以得出該點(diǎn)是該平面按照Hilbert曲線填充下的Hilbert坐標(biāo)(即是當(dāng)前區(qū)域中連貫曲線經(jīng)過的第幾個小區(qū)域,為一個整數(shù)),在有了各個小區(qū)域的順序之后,就可以繪制出完整的Hilbert曲線。一次具體的由點(diǎn)坐標(biāo)求Hilbert坐標(biāo)的過程為:若要在經(jīng)過三次迭代的Hilbert曲線(如下圖4.13所示)上,求(6,4)坐標(biāo)(坐標(biāo)均從0開始計(jì))對應(yīng)的Hilbert坐標(biāo)。從第一層開始,找到該點(diǎn)所在的象限。在右下方的象限中,對應(yīng)第一部分為2,二進(jìn)制是10,對應(yīng)的第二層仍然是第一種情況。接著到第二層,找到該點(diǎn)所在的象限為右上方,對應(yīng)第二部分為3,二進(jìn)制是11,對應(yīng)的第三層為第二種情況。到第三層,找到該點(diǎn)所在象限為左上方,對應(yīng)第三部分為2,二進(jìn)制是10。將得到的三個部分連接起來,得到Hilbert坐標(biāo)的二進(jìn)制為101110,轉(zhuǎn)化為十進(jìn)制為46。圖4.13三階Hilbert曲線在用Hilbert坐標(biāo)求對應(yīng)的點(diǎn)坐標(biāo)時,仍然可以在上面迭代形式的基礎(chǔ)上進(jìn)行。首先仍然假設(shè)最上層的迭代方式為第一種方式,并且在知道迭代總次數(shù)的情況下,可以計(jì)算出該平面內(nèi)所劃分的最小區(qū)域的個數(shù),然后就可以由這層迭代的象限順序計(jì)算出當(dāng)前Hilbert坐標(biāo)所在的象限(當(dāng)前區(qū)域總迭代次數(shù)記為n,若為第一象限,即左上,則x,y不變;若為第二象限,即左下,則x不變,y=y+2^n/2;若為第三象限,即右上,則y不變,x=x+2^n/2;若為第四象限,即右下,則x=x+2^n/2;y=y+2^n/2。然后就可以知道當(dāng)前象限現(xiàn)在對應(yīng)的迭代方式,進(jìn)而就可以繼續(xù)向下循環(huán)進(jìn)行,得出最終的點(diǎn)坐標(biāo),實(shí)現(xiàn)Hilbert坐標(biāo)到點(diǎn)坐標(biāo)的轉(zhuǎn)化,這將有利于系統(tǒng)之后展示具體的線段。一次具體的由Hilbert坐標(biāo)求點(diǎn)坐標(biāo)的過程為:若要在經(jīng)過三次迭代的Hilbert曲線(如上圖4.13所示)上,求Hilbert坐標(biāo)46對應(yīng)的點(diǎn)坐標(biāo)(坐標(biāo)均從0開始計(jì),x,y初始都為0)。從第一層開始,由于三層迭代共有64個小區(qū)域,那么每個象限當(dāng)中小區(qū)域的個數(shù)為16,則46所在區(qū)域?yàn)?(46/16=2...14),找到該區(qū)域?qū)?yīng)的象限,為右下部分,則x=x+4=4;y=y+4=4,同時迭代方式仍為第一種。在右下方的象限中,共有16個小區(qū)域,每個象限中有4個小區(qū)域,則14所在區(qū)域?yàn)?(14/4=3...2),找到該區(qū)域?qū)?yīng)的象限,為右上部分,則x=x+2=6,y不變,同時迭代方式為第二種方式。在右上方象限中,共有四個區(qū)域,則2所在區(qū)域?yàn)?(2/1=2),為第一象限,x,y都不變化。所以最后得出的坐標(biāo)為(6,4)。用戶在Hilbert界面可以選擇產(chǎn)生何種圖形,并可以具體查看某一步是具體的哪一段線段,這可以幫助使用者更方便地了解Hilbert的生成過程。同時,可以通過觀察前后兩次的圖形,了解到Hilbert的迭代特性。更方便地理解到Hilbert迭代產(chǎn)生的過程。Hilbert模塊的流程圖如下圖4.14所示。圖4.14Hilbert操作流程圖4.5Delaunay三角網(wǎng)生成算法設(shè)計(jì)在設(shè)計(jì)Delaunay生成算法的過程中,要充分考慮他的一個性質(zhì)——空洞圓性質(zhì)(見第二章相關(guān)幾何理論)。如下圖4.15所示。在驗(yàn)證這一性質(zhì)時,我們可以從已經(jīng)生成的三角網(wǎng)當(dāng)中隨機(jī)選擇一個三角形,做出他的外接圓,然后再將這個外接圓和其他點(diǎn)集一起展示出來,若這個圓內(nèi)部沒有其他的點(diǎn),則可以說明空洞圓性質(zhì)是完全成立的。圖4.15Delaunay空洞特性Delaunay三角網(wǎng)還具有最小角最大化的性質(zhì),如下圖4.16所示。在展示這個性質(zhì)時,可以計(jì)算出變化前后的六個內(nèi)角的余弦值,因?yàn)橛嘞以?-180這個角度范圍與角度成反比。在找變化前最小角時,可以找余弦值的最大值,再找出變化后的余弦最大值,通過比較兩個余弦值,可以看出后一次余弦值比前一次余弦值更大,即變化后的最小角比變化前的最小角更小,也就是變化前最小角已經(jīng)是最大的了,這便滿足最小角最大化性質(zhì)。圖4.16Delaunay最大化最小角特性本幾何結(jié)構(gòu)學(xué)習(xí)平臺采用逐點(diǎn)插入法來生成Delaunay三角網(wǎng)。1、生成一系列隨機(jī)的點(diǎn),并且將這些點(diǎn)的橫坐標(biāo)升序排序。求出這些點(diǎn)中橫坐標(biāo)最大值、最小值:Xmax、Xmin,縱坐標(biāo)最大值、最小值:Xmax、Ymin,然后就可以生成超級三角形,如下圖4.17所示。圖4.17生成超級三角形如圖,三個藍(lán)色的點(diǎn)被一個由離散點(diǎn)的最大分布來求得的隨機(jī)一個三角形包圍。這個三角形就是超級三角形,它包含了所有的隨機(jī)點(diǎn)。采用的方法是求出(Xmax-Xmin)/2,記為x,求出Ymax-Ymin,記為y,那么超級三角形最上方點(diǎn)的坐標(biāo)是(x,Ymin-y),左下方點(diǎn)的坐標(biāo)是(Xmin-x,Ymax),右下方點(diǎn)的坐標(biāo)是(Xmax+x,Ymax)。把這個超級三角形加入到臨時三角形表里面。把隨機(jī)生成的有序的點(diǎn)依次放入到圖中,然后將臨時三角形表里面的三角形一個個和這個點(diǎn)作比較,比較的結(jié)果有三種情況:當(dāng)這個點(diǎn)在三角形外接圓的右邊,也就是在這個圓右邊做垂直的切線,在這個切線的右邊,那么這個三角形就是Delaunay三角形,因?yàn)橐呀?jīng)在臨時三角形表當(dāng)中的三角形一定都滿足空洞圓性質(zhì),可能會出現(xiàn)在外接圓內(nèi)部的點(diǎn)只能是后續(xù)的點(diǎn)。而這些點(diǎn)又是有序的,于是之后的點(diǎn)便不會出現(xiàn)在這個圓內(nèi)部,所以這個三角形一定滿足條件。這時,把這個三角形從臨時的三角形表當(dāng)中去除,加入到最后的三角網(wǎng)當(dāng)中。當(dāng)這個點(diǎn)在這個三角形外接圓外面的時候,這時已經(jīng)排除了在右邊的情況,于是這個點(diǎn)不在右側(cè),所以后續(xù)的點(diǎn)仍然有可能在這個三角形外接圓的內(nèi)部,于是不能判斷,跳過,不需要對臨時三角形表做任何操作。當(dāng)這個點(diǎn)在這個三角形外接圓內(nèi)部的時候,他顯然就不能滿足空洞圓性質(zhì)了,那么就應(yīng)該把這個三角形從臨時的三角形表里面刪除,同時,還要把這個三角形的邊放到臨時的邊表,以便之后操作。如下圖4.18所示。3、在所有的三角形都遍歷完之后,把那些因?yàn)椴环蠗l件而加入臨時邊表的邊進(jìn)行去重,因?yàn)榭赡軙袃蓚€三角形有公共邊。之后,把臨時邊表里面的每一條邊和這個點(diǎn)組成一個新的三角形加入到臨時三角形表里面。4、循環(huán)執(zhí)行第二步和第三步,在所有點(diǎn)都插入完成,并且第三步完成后,把臨時三角形表里面剩下的三角形直接放入最后的三角網(wǎng)當(dāng)中。最后把與超級三角形有關(guān)的三角形刪除,得到最后的三角網(wǎng)。因?yàn)槌壢切问俏覀儤?gòu)造的,并不在最開始的點(diǎn)集里面。圖4.18點(diǎn)的插入判斷過程用戶在Delaunay界面可以輸入想要的任意點(diǎn)的個數(shù),隨后生成對應(yīng)的Delaunay三角網(wǎng)。然后,在生成三角網(wǎng)的基礎(chǔ)上,可以借助所生成的Delaunay三角網(wǎng)查看空洞圓性質(zhì)(通過圖形展示外接圓與隨機(jī)點(diǎn)之間的關(guān)系)以及最小角最大性質(zhì)(通過展示變化前與變化后的內(nèi)角的余弦值來展示性質(zhì))。Delaunay三角網(wǎng)的操作流程圖如下圖4.19所示。圖4.19Delaunay操作流程圖4.6Voronoi生成算法設(shè)計(jì)Delaunay三角網(wǎng)和Voronoi圖是互相對偶的關(guān)系,即對于一個給定的點(diǎn)集,可以通過Delaunay三角網(wǎng)生成Voronoi圖,也可以通過Voronoi圖生成Delaunay三角網(wǎng)。兩者都是計(jì)算幾何中常見的概念。Delaunay三角網(wǎng)是指對于給定的點(diǎn)集,將這些點(diǎn)連成一組三角形,使得任意兩個三角形不相交,且每個三角形的外接圓內(nèi)部不包含任何其他點(diǎn)。換句話說,Delaunay三角網(wǎng)是一種在給定點(diǎn)集中盡可能多地填充空間,同時又盡可能少地出現(xiàn)狹窄、長條形的三角形的方法。Voronoi圖是指對于給定的點(diǎn)集,以每個點(diǎn)為中心,將空間劃分成一組區(qū)域,使得每個區(qū)域內(nèi)部的所有點(diǎn)到中心點(diǎn)的距離都不超過到其他中心點(diǎn)的距離。Voronoi圖的邊界由一組垂直于相鄰點(diǎn)之間的連線的平分線組成,這些連線的平分線形成了Voronoi圖的邊界。下面是通過Delaunay三角網(wǎng)生成Voronoi圖的流程:1.給定一組點(diǎn)集,將這些點(diǎn)用Delaunay三角網(wǎng)進(jìn)行連線。2.對于Delaunay三角網(wǎng)上的每條邊,找到垂線平分線,將垂線平分線與相鄰三角形的垂線平分線交點(diǎn)連接起來,形成Voronoi邊。3.對于Delaunay三角網(wǎng)上的每個三角形,找到外接圓心,并將外接圓心連接起來,形成Voronoi點(diǎn)。4.如果點(diǎn)集在凸包內(nèi),需要將凸包上的Voronoi邊和凸包相交的邊進(jìn)行連接。生成的Voronoi圖是由一組Voronoi點(diǎn)和一組Voronoi邊組成的,其中每個Voronoi點(diǎn)表示一個區(qū)域的中心,每個Voronoi邊表示兩個區(qū)域之間的邊界。利用前面生成Delaunay三角網(wǎng)的算法,在生成三角網(wǎng)后,找出每個三角形的外心(即各邊中垂線交點(diǎn)),將相鄰的兩個三角形的外心相連,就可以構(gòu)造出Voronoi圖,如圖4.20所示(實(shí)線是Delaunay三角網(wǎng),虛線是Voronoi圖)。圖4.20Delaunay三角網(wǎng)與Voronoi圖用戶在Voronoi界面可以輸入想要生成的隨機(jī)點(diǎn)的個數(shù),生成對應(yīng)的Voronoi圖,旁邊也會同時展示生成Voronoi圖所用到的Delaunay三角網(wǎng)。同時可以將Voronoi圖與Delaunay三角網(wǎng)在一張圖上展示,更加直觀地看到看到兩者之間的聯(lián)系。Voronoi操作流程圖如下圖4.21所示。圖4.21Voronoi操作流程圖4.7本章小結(jié)本章主要介紹幾何結(jié)構(gòu)學(xué)習(xí)平臺是如何設(shè)計(jì)的,首先對系統(tǒng)的具體功能進(jìn)行設(shè)計(jì),其次對系統(tǒng)的數(shù)據(jù)庫方面進(jìn)行設(shè)計(jì),最后對各個生成算法進(jìn)行設(shè)計(jì)。在生成Hilbert時,采用了迭代生成的方法,同時需要驗(yàn)證它的迭代性質(zhì)。在生成Delaunay三角網(wǎng)時,采用了逐點(diǎn)插入的方法。系統(tǒng)實(shí)現(xiàn)5系統(tǒng)實(shí)現(xiàn)5.1用戶功能實(shí)現(xiàn)5.1.1用戶登陸注冊進(jìn)入首頁,點(diǎn)擊登錄,在點(diǎn)擊注冊,便可以到注冊界面,輸入用戶名,密碼,確認(rèn)密碼等信息,在確定用戶名無重復(fù)且兩次密碼一致后,便可以成功注冊,若用戶名重復(fù),則會出現(xiàn)提示,若密碼不一致,也會出現(xiàn)提示。注冊界面如圖5.1所示。圖5.1注冊頁面注冊成功后,返回登陸界面,正確輸入賬號密碼之后,即可登陸成功,若賬號和密碼無法正確匹配,則不能登錄。在登陸成功之后,系統(tǒng)直接進(jìn)入平臺首頁。登錄界面如下圖5.2所示。圖5.2登錄界面5.1.2查看幾何圖形用戶登陸成功后直接進(jìn)入首頁,查看幾何圖形。可以看到幾何結(jié)構(gòu)的名稱,對應(yīng)的簡單的介紹以及他們的圖形圖片,能夠讓用戶簡單直觀地先了解這些結(jié)構(gòu),同時,若用戶對其中的某一個結(jié)構(gòu)感興趣,可以進(jìn)一步查看。首頁如圖5.3所示。圖5.3首頁在首頁點(diǎn)擊Hilbert圖片,可以進(jìn)入Hilbert界面。在這個界面的左側(cè),是圖形的生成區(qū)域,界面的右邊是Hilbert曲線可以選擇的操作,包括直接生成Hilbert圖、查看第N次生成的邊、展示Hilbert曲線的迭代等操作選擇。操作欄如圖5.4所示。圖5.4Hilbert界面操作欄在首頁點(diǎn)擊Delaunay圖片進(jìn)入Delaunay界面,左側(cè)為圖形展示界面,右側(cè)為圖形操作選項(xiàng)界面,包括生成Delaunay三角網(wǎng),Delaunay三角網(wǎng)空洞圓性質(zhì)的查看,Delaunay三角網(wǎng)最小角最大化性質(zhì)的查看等操作選項(xiàng)。操作欄如圖5.5所示。圖5.5Delaunay界面操作欄首頁點(diǎn)擊Voronoi圖片進(jìn)入Voronoi界面,左側(cè)為圖形的展示板塊,右側(cè)包括生成Voronoi圖,查看Voronoi圖與Delaunay的聯(lián)系等操作的選項(xiàng)。Voronoi學(xué)習(xí)界面操作欄如圖5.6所示。圖5.6Voronoi界面操作欄5.1.3查看個人信息用戶點(diǎn)擊導(dǎo)航欄的個人信息,可以查看個人信息,包括自己的用戶名,注冊所用的手機(jī)號以及自己的郵箱。同時用戶也可以在這個界面進(jìn)行信息的修改。個人信息編輯界面如圖5.7所示。圖5.7個人信息頁面5.1.4圖形收藏用戶收藏圖形后,可以點(diǎn)擊導(dǎo)航欄收藏查看,可以看到收藏圖形的名稱和對應(yīng)的介紹。同時,用戶可以刪除已經(jīng)收藏的幾何結(jié)構(gòu)。用戶收藏界面如圖5.8所示。圖5.8個人收藏頁面5.2Hilbert曲線生成算法實(shí)現(xiàn)根據(jù)生成算法的設(shè)計(jì),首先,將四種迭代方式用計(jì)算機(jī)的語言表達(dá)出來,這里采用集合將四種情況保存起來,如圖5.9所示。其中第三、第四行最左側(cè)的表示象限的的二進(jìn)制,后面帶a,b,c,d角標(biāo)(表示四種迭代方式)的,表示的是四種迭代方

溫馨提示

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

最新文檔

評論

0/150

提交評論