IT項(xiàng)目管理詳細(xì)設(shè)計(jì)文檔_第1頁(yè)
IT項(xiàng)目管理詳細(xì)設(shè)計(jì)文檔_第2頁(yè)
IT項(xiàng)目管理詳細(xì)設(shè)計(jì)文檔_第3頁(yè)
IT項(xiàng)目管理詳細(xì)設(shè)計(jì)文檔_第4頁(yè)
IT項(xiàng)目管理詳細(xì)設(shè)計(jì)文檔_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Smart Geometry詳細(xì)設(shè)計(jì)說(shuō)明書(shū)IT Project ManagementSCUTCopyright1 概述1.1 系統(tǒng)簡(jiǎn)述 由于目前的主流電子課件系統(tǒng),無(wú)法滿足教師在課堂教學(xué)互動(dòng)中需要與用戶界面自然、高效、連續(xù)性交互的要求。我們準(zhǔn)備用我們的實(shí)際行動(dòng)來(lái)試圖改變這一現(xiàn)狀,本項(xiàng)目擬實(shí)現(xiàn)一個(gè)能在ipad上運(yùn)行的智能幾何教育平臺(tái),其功能包括草圖識(shí)別,手勢(shì)識(shí)別,動(dòng)態(tài)幾何約束等。由于時(shí)間有限,動(dòng)態(tài)幾何約束求解與動(dòng)態(tài)幾何可視化這部分的功能暫不準(zhǔn)備實(shí)現(xiàn)。非功能性的需求有系統(tǒng)出錯(cuò)處理及易操作性。1.2 軟件設(shè)計(jì)目標(biāo)本項(xiàng)目系統(tǒng)概要設(shè)計(jì)說(shuō)明書(shū)是基于Smart Geometry智能幾何教育平臺(tái)需求分析書(shū)進(jìn)行

2、編寫(xiě)的。該項(xiàng)目將以筆代替鼠標(biāo)鍵盤(pán),能夠連續(xù)添加筆跡批注,勾畫(huà)并識(shí)別幾何草圖,用筆手勢(shì)操縱界面元素。本概要設(shè)計(jì)同時(shí)也是為詳細(xì)設(shè)計(jì)及后續(xù)開(kāi)發(fā),提供指導(dǎo)作用。預(yù)期的讀者:詳細(xì)設(shè)計(jì)人員開(kāi)發(fā)人員測(cè)試人員用戶1.3 參考資料ipad開(kāi)發(fā)應(yīng)用實(shí)戰(zhàn),iphone4與ipad開(kāi)發(fā)基礎(chǔ)教程,Objectivec基礎(chǔ)教程,ipad開(kāi)發(fā)基礎(chǔ)教程,ipad應(yīng)用開(kāi)發(fā)實(shí)例。2 術(shù)語(yǔ)表 本文檔所涉及到的屬于包含如下: 1、Stroke:筆跡,用戶一次落筆提筆2、Pen_Info:預(yù)處理3、Graph:圖形類(lèi)4、Guint:圖元類(lèi)5、Graph_Edit:圖形編輯類(lèi)6、Constraint:圖形與圖形之間的約束,一個(gè)圖形擁有多

3、個(gè)約束,由約束的類(lèi)型來(lái)標(biāo)識(shí)。7、特征點(diǎn):用于劃分圖元的點(diǎn),比如三角形的頂點(diǎn)。8、點(diǎn)集:一系列點(diǎn)的集合9、圖元:組成圖形的最小單位,比如三角形的邊。10、雙線程:當(dāng)開(kāi)始錄制視頻時(shí),創(chuàng)建新的線程進(jìn)行錄制操作。11、切割:通過(guò)特征點(diǎn)來(lái)劃分點(diǎn)集屬于的圖元類(lèi)型。12、擬合:將被劃分好的圖元計(jì)算出最能代表該點(diǎn)集的方程表達(dá)式。3 用例上圖表明使用本系統(tǒng)的用戶需要打開(kāi)軟件系統(tǒng),就能使用系統(tǒng),用戶輸入圖形進(jìn)行草圖識(shí)別,并可以對(duì)識(shí)別出來(lái)的圖形進(jìn)行清空、保存等功能。用例描述序號(hào)用例編號(hào)用例名稱(chēng)簡(jiǎn)單描述1UC_01graph-input用戶進(jìn)行草圖輸入2UC_02graph-save用戶對(duì)識(shí)別出來(lái)的圖形進(jìn)行保存3UC

4、_03graph-load用戶讀取已經(jīng)保存的圖形4UC_04graph-delete用戶對(duì)識(shí)別出來(lái)的圖形進(jìn)行清空刪除5UC_05graph-adjust用戶對(duì)已繪制的圖形進(jìn)行調(diào)整6UC_06graph-handle對(duì)輸入的草圖進(jìn)行的一系列處理過(guò)程7UC_07pre-handle系統(tǒng)對(duì)輸入的草圖進(jìn)行預(yù)處理8UC_08graph-cut系統(tǒng)根據(jù)特征點(diǎn)進(jìn)行圖元的分割9UC_09graph-recognization系統(tǒng)對(duì)分割出來(lái)的圖元進(jìn)行識(shí)別10UC_10graph-rebuild系統(tǒng)根據(jù)劃分出來(lái)的圖元進(jìn)行圖形的重組11UC_11graph-reshape系統(tǒng)對(duì)重組出來(lái)的圖形進(jìn)行規(guī)整 12UC_12

5、graph-constraint系統(tǒng)對(duì)已有圖形保持幾何約束13UC_13graph-output系統(tǒng)輸出一系列圖形處理步驟后產(chǎn)生的圖形4 設(shè)計(jì)概述4.1簡(jiǎn)述本系統(tǒng)主要采用面向?qū)ο笤O(shè)計(jì)、主機(jī)的結(jié)構(gòu)模式進(jìn)行開(kāi)發(fā),利用數(shù)學(xué)的幾何知識(shí)進(jìn)行求解問(wèn)題。4.2 系統(tǒng)非功能描述、約束與估算系統(tǒng)非功能描述和約束如下表 任何一臺(tái)具有一定的內(nèi)存、無(wú)問(wèn)題的CPU、一定的數(shù)據(jù)存儲(chǔ)量的可使用的iPad即可。估算 暫無(wú)問(wèn)題。4.3 系統(tǒng)的復(fù)用計(jì)劃庫(kù)、框架、模式、構(gòu)件等方面的復(fù)用暫不考慮。4.4系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 4.4.1系統(tǒng)邊界模型1.可有效識(shí)別出基本圖形,比如直線,三角形,圓形等。2.同時(shí)具有實(shí)時(shí)調(diào)整圖形的功能。3.提供保存

6、和重新載入功能。4.提供錄音和錄頻的功能。5.提供筆形,筆色,背景色選擇功能。6.提供坐標(biāo)系坐標(biāo)功能。4.4.2系統(tǒng)功能架構(gòu)1、智能幾何(smart geometry)系統(tǒng)技術(shù)框架主要包括七部分:筆交互信息收集,用戶意圖判斷器,筆跡識(shí)別,圖形選定,編輯,存儲(chǔ)。2、筆交互信息收集:負(fù)責(zé)從外部硬件環(huán)境中獲取最初的點(diǎn)集信息(Pen_Info),并對(duì)收集到的點(diǎn)集信息進(jìn)行早期的預(yù)處理,包括平滑和消除躁點(diǎn)處理,最后得到經(jīng)過(guò)預(yù)處理以后的點(diǎn)集信息信息,被稱(chēng)為筆跡(Stroke)。3、筆跡識(shí)別:分別對(duì)圖元或者手勢(shì)進(jìn)行識(shí)別:<1>對(duì)圖元的識(shí)別包括先對(duì)筆跡(Stroke)進(jìn)行分割,產(chǎn)生一系列圖元對(duì)象(G

7、unit)集合,并對(duì)其識(shí)別和重構(gòu),最終得到圖形對(duì)象(Graph),其中圖元對(duì)(Gunit)包括點(diǎn)圖元(Point_Unit),直線圖元(Line_Unit),曲線圖元(Curve_Unit),圖形對(duì)象(Graph)是由多個(gè)圖元(Gunit)對(duì)象構(gòu)成,包括點(diǎn)圖形(Point_Graph),直線圖形(Line_Graph),曲線圖形(Curve_Graph)(圓,橢圓或者?。?,三角形(Triangle_Graph),四邊形(Rectangle_Graph),和特殊圖形(Other_Graph)。<2>對(duì)手勢(shì)的識(shí)別包括從專(zhuān)家?guī)熘蝎@取判斷手勢(shì)意圖的規(guī)則,最后識(shí)別出手勢(shì)的意圖。4、圖形選定:

8、負(fù)責(zé)對(duì)存在約束的圖形幾何的選定,主要通過(guò)圖形探查器對(duì)圖形進(jìn)行選定操作,選定的圖形被稱(chēng)為Selected_Obj。5、編輯:用戶進(jìn)入編輯態(tài)時(shí),可以對(duì)選定圖形進(jìn)行縮放,變形,移動(dòng),旋轉(zhuǎn)四種編輯。6、存儲(chǔ):對(duì)用戶操作完后的圖形進(jìn)行存儲(chǔ)。4.4.3系統(tǒng)的邏輯架構(gòu) 筆交互信息收集轉(zhuǎn)換器:負(fù)責(zé)從外部硬件環(huán)境中獲取最初的點(diǎn)集信息Pen_Info,并對(duì)Pen _Info進(jìn)行早期預(yù)處理,包括平滑和消噪處理,最后得到經(jīng)過(guò)預(yù)處理以后的點(diǎn)集信息,被稱(chēng)為筆跡Stroke。 用戶意圖判斷器:負(fù)責(zé)從筆跡Stroke中判斷用戶意圖,用戶意圖包括畫(huà)圖意圖Sketch和手勢(shì)意圖Gesture。識(shí)別器:分別對(duì)圖元和手勢(shì)進(jìn)行識(shí)別:對(duì)

9、圖元的識(shí)別包括先對(duì)筆跡Stroke進(jìn)行分割,產(chǎn)生一系列圖元對(duì)象Gunit集合,并對(duì)其識(shí)別和重構(gòu),最終得到圖形對(duì)象Graph,其中圖元對(duì)象Gunit包括點(diǎn)圖元Point_Unit、直線圖元Line_Unit、曲線圖元Curve_Unit,圖形對(duì)象Graph是由多個(gè)圖元Gunit對(duì)象構(gòu)成,包括點(diǎn)圖形Point_Graph、直線圖形Line_Graph、曲線圖形(圓、橢圓或者?。〤urve_Graph、三角形Triangle_Graph、四邊形Rectangle_Graph、和非特殊圖形Other_Graph;對(duì)手勢(shì)的識(shí)別包括從專(zhuān)家?guī)熘蝎@取判斷手勢(shì)意圖的規(guī)則,最后識(shí)別出手勢(shì)的意圖。圖形選定器:負(fù)責(zé)對(duì)

10、存在約束的圖形幾何的選定,主要通過(guò)圖形探查器對(duì)圖形進(jìn)行選定操作,選定的圖形被稱(chēng)為Selected_Obj,跟當(dāng)前選中圖形Selected_Obj存在約束的圖形將通過(guò)約束探查器查找?guī)缀渭s束表來(lái)一起選定,一起選定的圖形被放在一個(gè)鏈表里,該鏈表被稱(chēng)為Selected_Graph_List。 動(dòng)態(tài)幾何約束器:負(fù)責(zé)對(duì)存在約束的幾何圖形之間進(jìn)行編輯操作時(shí)候的動(dòng)態(tài)約束保持,核心模塊為動(dòng)態(tài)幾何處理器,將存在幾何約束的選中圖形的集合Selected_Graph_List作為輸入,可對(duì)改集合里面的圖形進(jìn)行旋轉(zhuǎn)、平移、縮放和拖動(dòng)頂點(diǎn)等編輯操作,用戶進(jìn)行編輯操作的時(shí)候,圖形與圖形之間的幾何約束關(guān)系將得到動(dòng)態(tài)保持。 存

11、儲(chǔ)轉(zhuǎn)換器:負(fù)責(zé)將圖形的性質(zhì)和圖形跟其他圖形之間的動(dòng)態(tài)關(guān)系存儲(chǔ)下來(lái)。 繪圖器:負(fù)責(zé)圖形和圖形之間幾何約束關(guān)系的表示以及其他特殊類(lèi)型圖形標(biāo)識(shí)的繪制,其中每個(gè)圖形可用用戶自定義的畫(huà)筆進(jìn)行繪制,且圖形與圖形之間的幾何約束和特殊類(lèi)型圖形的標(biāo)識(shí)都采取常見(jiàn)的標(biāo)識(shí)。4.4.4系統(tǒng)的物理架構(gòu) 系統(tǒng)的運(yùn)行環(huán)境:iOS操作系統(tǒng)(4.3及以上) 開(kāi)發(fā)環(huán)境:Mac OS X Lion操作系統(tǒng),Xcode4.4.5 系統(tǒng)數(shù)據(jù)模型編號(hào)名稱(chēng)說(shuō)明1Point由兩個(gè)整形組成,記錄點(diǎn)的坐標(biāo)2Vector<T>鏈表,用于記錄數(shù)據(jù)類(lèi)型為T(mén)的一系列數(shù)據(jù)3Gunit圖元類(lèi),有一個(gè)List<Point>數(shù)據(jù)成員,表示

12、該圖元的點(diǎn)信息4Constrain用于記錄圖形與圖形的約束,由約束的類(lèi)型和與其相關(guān)聯(lián)的圖形的指針5Line_unit直線圖元類(lèi),是Gunit的子類(lèi),擁有Point類(lèi)型的數(shù)據(jù)成員,分別表示直線的起點(diǎn)和終點(diǎn),這條直線和效率的截距6Curve_unit二次曲線類(lèi),是Gunit的子類(lèi),擁有6個(gè)double類(lèi)型的參數(shù),分別是二次曲線方稱(chēng)Ax2 +Bxy+Cy2 +Dx+Ey+F=0 7Graph圖形類(lèi),并具有一個(gè)vector<constraint>的約束列表記錄與該圖形有關(guān)的約束8Line_Graph包含一個(gè)line_unit,圖形類(lèi)的子類(lèi)9Curve_Graph曲線圖形,包含一個(gè)curve

13、_unit,圖形類(lèi)的子類(lèi)10Triangle_Graph包含三個(gè)line_graph,用于直線的約束,也擁有三角形的約束11Rectangle_Graph包含四條直線12Other_Graph存儲(chǔ)非二次曲線軌跡各個(gè)類(lèi)的數(shù)據(jù)成員都設(shè)為 Public,可以直接通過(guò)點(diǎn)訪問(wèn)。 整個(gè)系統(tǒng)分為兩部分?jǐn)?shù)據(jù):圖形集和約束集 系統(tǒng)使用十字鏈表來(lái)存儲(chǔ)圖形,通過(guò)約束建立圖形與圖形之間的聯(lián)系。在實(shí)現(xiàn)動(dòng)態(tài)的約束保持的時(shí)候使用該十字鏈表,通過(guò)遍歷有約束的圖形從而得到一起變化的圖形。4.5系統(tǒng)的接口設(shè)計(jì)4.5.1 用戶接口基于筆交互的概念整個(gè)界面與傳統(tǒng) GUI 界面設(shè)計(jì)風(fēng)格不同,本系統(tǒng)將提供一個(gè)簡(jiǎn)潔 的界面,只需要使用手指

14、就可以輕松地進(jìn)行操作。在草圖繪制勾畫(huà)區(qū)域,落筆可以進(jìn)行相應(yīng)的草圖繪制1、點(diǎn)擊 Pen style 圖標(biāo)就可以進(jìn)行筆形的選擇2、點(diǎn)擊 Pen Color 圖標(biāo)可以進(jìn)行筆色選擇3、點(diǎn)擊 Record 圖標(biāo)再在里面選擇開(kāi)始,暫停,終止進(jìn)行錄制或者暫停終止等操作4、點(diǎn)擊 save 圖標(biāo),進(jìn)行存儲(chǔ)操作5、點(diǎn)擊 Open 圖標(biāo),選擇需要打開(kāi)的文件則可以重新載入原本的文件6、點(diǎn)擊 clear 圖標(biāo),就可以清除掉畫(huà)板上的所有圖形7、點(diǎn)擊 chart 圖標(biāo),可以坐標(biāo)及坐標(biāo)系8、點(diǎn)擊 Minimum 圖標(biāo),就可以將程序最小化9、點(diǎn)擊 Exit 圖標(biāo),就可以退出該運(yùn)行程序 外部接口無(wú) 內(nèi)部接口說(shuō)明本系統(tǒng)之內(nèi)的各個(gè)系

15、統(tǒng)元素之間的接口的安排。編號(hào)作用函數(shù)原型1預(yù)處理vector<Point> Pen_Info:getNewPen_Info()2特征點(diǎn)識(shí)別void Cut(vector<Point> pList,vector<Gunit> gList)3圖元分割GUnit* GUnit:recognize(vector<Point> &pList)4圖元重組bool Stroke:rebuild(vector<Point>& real,vector<int>& special)5圖形規(guī)整void Holotacti

16、c(List<Graph> grList)6文件保存void CEditorView:save_file(CString filename)7文件加載void CEditorView:open_file(CString filename)8圖形輸出void CEditorView:paint_units_graphs()9約束識(shí)別void CEditorView:recognize_constrains(vector<Graph*> selected_list)4.6 系統(tǒng)約束與策略系統(tǒng)約束如下性能1、提供先進(jìn)的識(shí)別技術(shù),提高圖形處理響應(yīng)速度 2、草圖識(shí)別的時(shí)間不超過(guò)0

17、.2s 3、容量上的擴(kuò)展以及功能上的補(bǔ)充易維護(hù)本系統(tǒng)設(shè)計(jì)到很多維護(hù)的流程,應(yīng)方便維護(hù),以提高工作效率。 響應(yīng)速度快系統(tǒng)在處理圖形時(shí),對(duì)系統(tǒng)延遲往往有一個(gè)忍耐極限,所以要求系統(tǒng)響應(yīng)速度應(yīng)在用戶忍耐范圍內(nèi)。 穩(wěn)定性1、故障間隔時(shí)間應(yīng)大于 1000 小時(shí) 2、系統(tǒng)要保證數(shù)據(jù)的一致性,完整性,準(zhǔn)確性要求達(dá)到99% 擴(kuò)展性對(duì)新增業(yè)務(wù),系統(tǒng)提供業(yè)務(wù)組件的動(dòng)態(tài)部署功能,和平滑升級(jí)功能。 易操作性要求操作界面簡(jiǎn)單方便 4.6.2系統(tǒng)策略 采用原生的SDK,利用數(shù)學(xué)幾何知識(shí)以及高斯離散維數(shù)積分的知識(shí)來(lái)提高性能。4.7 對(duì)象模型設(shè)計(jì)4.7.1 Stroke類(lèi)屬性/方法說(shuō)明QList<Point> pL

18、ist定義一個(gè)存儲(chǔ)一個(gè)筆跡當(dāng)中所有點(diǎn)對(duì)象的動(dòng)態(tài)數(shù)組QList<GUnit*> glist存放單個(gè)STROKE里面的圖元Stroke(QList<Point> &) 構(gòu)造函數(shù),傳入一次落筆提筆間所有的點(diǎn)對(duì)象Void find_Specialpoint(QList<Point> &);特征點(diǎn)識(shí)別void Speed(QList<Point> &)速度過(guò)濾方法:低于平均值的一定百分比算是特征點(diǎn) void Curvity(QList<Point> &)曲率過(guò)濾void Direction(QList<Po

19、int> &)方向過(guò)濾void Space(QList<Point> &)進(jìn)一步處理GUnit*recognize(QList<Point> &)識(shí)別各個(gè)圖形的類(lèi)別4.7.2 GUnit類(lèi)屬性/方法說(shuō)明Point start起點(diǎn)Point end終點(diǎn)int type圖元類(lèi)型int id圖元編號(hào)bool isSelected當(dāng)前是否被選中 virtual void draw(QPainter &)接口函數(shù),畫(huà)出圖元,繼承的圖元類(lèi)實(shí)現(xiàn)virtual void translation(Point &)接口函數(shù),平移圖元,繼承的圖元

20、類(lèi)實(shí)現(xiàn)virtual void rotation(qreal &)接口函數(shù),旋轉(zhuǎn)圖元,繼承的圖元類(lèi)實(shí)現(xiàn)virtual void scale(void)接口函數(shù),放大圖元,繼承的圖元類(lèi)實(shí)現(xiàn) 4.7.3 Point_Unit類(lèi)屬性/方法說(shuō)明qreal axisX 點(diǎn)的橫坐標(biāo)qreal axisY點(diǎn)的縱坐標(biāo)void draw(QPainter&)畫(huà)出點(diǎn)4.7.4 Line_Unit類(lèi)屬性/方法說(shuō)明Point cut_point記錄在與之相切的圓上的切點(diǎn)即在原點(diǎn)的情況下的圓的切點(diǎn)bool isCutLine是否是圓的切線bool judge(QList<Point>&

21、; )計(jì)算出直線的相關(guān)系數(shù) 通過(guò)相關(guān)系數(shù)進(jìn)行判斷是否為直線void draw(QPainter &)畫(huà)出直線4.7.5 Curve_Unit類(lèi)屬性/方法說(shuō)明qreal a,b,c,d,e,f為二次曲線的標(biāo)準(zhǔn)最簡(jiǎn)式a*x2+b*xy+c*y2+d*x+e*y+f=0的系數(shù)qreal major_axis,minor_axis長(zhǎng)軸,短軸;major_axis是 x方向上的軸長(zhǎng);minor_axis 是 y方向上的軸長(zhǎng)Point centre中心坐標(biāo)Point f1,f2焦點(diǎn)Point move移動(dòng)的向量坐標(biāo)qreal alpha旋轉(zhuǎn)角qreal start_angle, end_angle

22、畫(huà)弧線時(shí)的起始角和終止角(并非是起始點(diǎn)、終點(diǎn)和原點(diǎn)的連線與坐標(biāo)軸的夾角)在畫(huà)二次曲線時(shí)有作用bool ellipse橢圓為true,圓為falsebool ishalfCurve如果是半個(gè)以上的二次弧線則為真,默認(rèn)值是falseQList<Point> track非二次曲線軌跡bool IsSecDegreeCurv(QList<Point>& )如果是二次曲線返回true,如果是非二次曲線則返回falsevoid judge(QList<Point>&)判斷是何種二次曲線bool Line_tangent(Line_Unit)計(jì)算一個(gè)曲線的

23、切線bool Line_Curve_CutPoint(qreal &,qreal&,qreal&,qreal&,qreal&,qreal &, qreal &,qreal &)求直線和曲線的切點(diǎn),并進(jìn)行判斷,只有當(dāng)該切點(diǎn)在該直線和曲線上時(shí)才返回真,/當(dāng)draw為true的時(shí)候畫(huà)出切點(diǎn)4.7.5 Graph類(lèi)屬性/方法說(shuō)明int type用于存儲(chǔ)時(shí)標(biāo)識(shí)出圖形的類(lèi)型QList <Constraint> constraint_list存儲(chǔ)與圖形約束的其他圖形信息int local_graph_id圖形的IDbool isSe

24、lected是否被選中virtual bool recognize_constraint(Graph*,QList<Point_Graph*>&)識(shí)別圖形與其他已存在的圖形之間是否存在約束約束void construct_constraint(Graph*,Constraint_Type,Graph* ,Constraint_Type )如果存在約束,將約束構(gòu)造出來(lái)virtual void translation(const QPointF &)虛函數(shù),平移選定圖形及其相應(yīng)的約束virtual void rotation(const qreal&,const

25、 QPointF &)虛函數(shù),旋轉(zhuǎn)選定圖形及其相應(yīng)的約束virtual void scale(const qreal &)虛函數(shù),放大或縮小選定圖形及其相應(yīng)的約束4.7.5 Point_Graph類(lèi)屬性/方法說(shuō)明bool belong_to_rectangle是否在矩形上bool is_on_line是否在直線上bool vertex_of_special_line標(biāo)識(shí)它是否為三角形特殊線的落在三角形邊上的端點(diǎn),在KEEP的時(shí)候有用bool cut_point_of_circles標(biāo)識(shí)是否為兩個(gè)圓的切點(diǎn)void keep_constraint(Point& )總領(lǐng)函數(shù),

26、用于直接拖動(dòng)點(diǎn)的時(shí)候用,傳進(jìn)一個(gè)點(diǎn)的坐標(biāo),然后根據(jù)點(diǎn)所在的直線的性質(zhì)不同,傳不同的參數(shù)給void keep_vertex_of_line(Graph*)當(dāng)某一個(gè)頂點(diǎn)動(dòng)了的時(shí)候,可以調(diào)用這個(gè)函數(shù)來(lái)調(diào)整那些以它作為端點(diǎn)的直線,而不是調(diào)用總的KEEP_CONSTRAINT4.7.6 Line_Graph類(lèi) 屬性/方法說(shuō)明Line_Unit* line;指向相應(yīng)的圖元bool has_start,has_end;用于識(shí)別約束時(shí)表示直線的端點(diǎn)有沒(méi)有跟點(diǎn)列表里面的點(diǎn)圖形連到了一齊bool is_special用于標(biāo)識(shí)直線是否為三角形的三角形的特殊線bool is_tangent用于標(biāo)識(shí)直線是否為切線 vo

27、id recognize_constraint(QList<Point_Graph*> &)用以約束識(shí)別開(kāi)始階段時(shí)的直線和存在的點(diǎn)之間的約束識(shí)別void adjust_vertex(Point,int)用于固定一端后來(lái)根據(jù)一個(gè)直線上新的點(diǎn)來(lái)調(diào)整另一端的位置,0為start,1為endbool recognize_constraint(Graph* graph,QList<Point_Graph*>& point_list)總領(lǐng)的函數(shù) int judge_legal_intersection(Line_Unit* ,Line_Unit* ,Point&am

28、p;)判斷交點(diǎn)的屬性bool judge_legal_intersection(Point )判斷交點(diǎn)是否與直線上已有的點(diǎn)相同或很相近,若是的話則不必再生成新的點(diǎn)void keep_constraint()主要用于當(dāng)直線的位置改變的時(shí)候,改變其上面存在的點(diǎn)的位置(非自身端點(diǎn)),然后再通過(guò)這些被改變的點(diǎn)去帶動(dòng)其他直線void keep_point_on_line(Point_Graph* )主要用于那些非限制點(diǎn)的位置變動(dòng) void keep_intersection_point(Point_Graph* )用于計(jì)算交點(diǎn)的新位置 4.7.7 Curve_Graph類(lèi)屬性/方法說(shuō)明Curve_Uni

29、t* curve指向相應(yīng)的圖元bool recognize_externally_tangent_constrain(Triangle_Graph * )識(shí)別外切三角形 bool recognize_constraint(Curve_Graph*,QList<Point_Graph*>& )用于識(shí)別圓與圓之間的關(guān)系,內(nèi)外切,或者相交bool recognize_constraint(Line_Graph*,QList<Point_Graph*>& )用于識(shí)別圓形與直線之間的關(guān)系,總領(lǐng)函數(shù)bool recognize_constraint(Triangle

30、_Graph*,QList<Point_Graph*> &)用于識(shí)別跟三角形的交點(diǎn),非內(nèi)切和外接 bool recognize_line_tangent_constrain(Line_Graph *)識(shí)別切線bool recognize_diameter(Line_Graph* ,QList<Point_Graph*> &)用于識(shí)別直徑bool recognize_radius(Line_Graph* ,QList<Point_Graph *> &)用于識(shí)別半徑bool recognize_common_line_constraint

31、(Line_Graph* ,QList<Point_Graph *> &)識(shí)別與直線的一般約束bool judge_recognization(Line_Graph*)判斷是否應(yīng)該進(jìn)行直徑半徑和一般直線的識(shí)別int judge_legal_intersection(Line_Graph*,Point)判斷直線與圓的交點(diǎn)是否符合條件:-1為不在直線上,0為在直線上,1為起點(diǎn),2為末尾點(diǎn)void make_constraint(Line_Graph*,Point&,QList<Point_Graph*>& )生成直線和圓相交的點(diǎn)的有關(guān)約束bool recognize_constraint(Graph* ,QList<Point_Graph*>&)總領(lǐng)的函數(shù)4.7.8 Triangle_Graph類(lèi)屬性/方法說(shuō)明QList<Line_Unit*> tr_lines指向三角形的各條邊QList<Point> tr_vertexes存儲(chǔ)三角形的各個(gè)點(diǎn)QList<qreal> tr_angles存儲(chǔ)三角形的各個(gè)角QList<qreal> tr_lineDist存儲(chǔ)三角形的邊長(zhǎng)int tr

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論