專利名稱:在應用程序內(nèi)創(chuàng)建和布局圖形的方法、系統(tǒng)和計算機可讀介質(zhì)的制作方法
相關(guān)申請的參照本申請涉及2004年9月30日提交的名為“Editing The Text Of An ArbitraryGraphic Via A Hierachical List(通過分層列表編輯任意圖形的文本)”的美國專利申請第______號,且與其同時提交,該申請轉(zhuǎn)讓給與本發(fā)明相同的受讓人。以上專利申請通過引用明確地整體結(jié)合于此。
背景技術(shù):
現(xiàn)代軟件應用程序,包括文字處理程序和專用繪圖應用程序,使用戶能夠創(chuàng)建簡單和復雜的圖形。這些繪圖程序允許用戶使用可用文本注釋的各種形狀來創(chuàng)建圖形。由這些應用程序創(chuàng)建的圖形可以是獨立的文檔或結(jié)合到文本文檔中。盡管存在現(xiàn)代繪圖程序提供的優(yōu)點,然而這些程序仍遭受妨礙典型用戶對圖形的創(chuàng)建和布局的若干缺點。
現(xiàn)代繪圖程序的一個缺點是盡管它們可提供用于創(chuàng)建圖形的工具,然而許多用戶不知道這些現(xiàn)有工具,或者不知道如何有效地使用它們。結(jié)果,用戶或者創(chuàng)建其自己的圖形,或者不正確地使用圖形工具,導致具有不對齊的形狀以及應當具有相同字體大小而實際卻沒有的文本的圖形。現(xiàn)代繪圖程序的另一缺點是包含文本的形狀不對添加的或增大的文本自動重新調(diào)整字體或擴展其尺寸,使得文本保持完全被封閉在形狀中。現(xiàn)代繪圖程序的又一缺點是它們提供嚴格的布局或完全不提供布局。沒有布局的程序要求用戶對每一形狀手動定大小和定位,具有嚴格布局的程序不允許用戶對形狀的大小或位置做出任何改變或定制。
本發(fā)明的各實施例正是相對于這些和其它考慮事項而做出的。
發(fā)明內(nèi)容
依照本發(fā)明,以上和其它問題由一種方法、裝置和計算機可讀介質(zhì)來解決,它們用于基于將數(shù)據(jù)和關(guān)系變換成特定圖形布局的一組約束在繪圖應用程序內(nèi)創(chuàng)建和布局圖形。該方法包括接收定義數(shù)據(jù)以及在圖形中表示的數(shù)據(jù)之間的關(guān)系的數(shù)據(jù)模型、接收定義要創(chuàng)建的圖形的圖形定義、通過將數(shù)據(jù)從數(shù)據(jù)模型映射到圖形定義中的信息來生成布局樹、依照圖形定義中指定的約束值和約束規(guī)則來確定圖形形狀的大小和位置、以及使用來自布局樹的信息來創(chuàng)建圖形的形狀列表。這些形狀然后可由任何呈現(xiàn)應用程序來呈現(xiàn),以獲得最終的圖形。
為將數(shù)據(jù)從數(shù)據(jù)模型映射到圖形定義中的信息,該方法反復通過數(shù)據(jù)模型,并應用圖形定義中指定的準則來對構(gòu)造圖形所需的每一形狀確定算法、約束、約束規(guī)則和形狀屬性。這些數(shù)據(jù)集然后被添加到布局樹,該布局樹是圖形結(jié)構(gòu)的分層表示。
為確定圖形形狀的大小和位置,該方法訪問圖形定義中的算法、約束和約束規(guī)則。算法來自一組無限制的潛在算法,它們知道如何對形狀定大小和定位以獲得特定的圖形布局,諸如在圓形路徑中布局形狀或在直線路徑中布局形狀。算法使用約束或起始值,以及約束規(guī)則或用于在一范圍內(nèi)改變那些起始值的指令,基于形狀的數(shù)目、每一形狀內(nèi)文本的數(shù)量、以及其中將要布局形狀的區(qū)域的尺寸,來確定形狀的大小和位置。
本發(fā)明可被實現(xiàn)為計算機過程、計算系統(tǒng)、或諸如計算機程序產(chǎn)品或計算機可讀介質(zhì)等制品。計算機程序產(chǎn)品可以是計算機系統(tǒng)可讀的、且編碼用于執(zhí)行計算機過程的指令的計算機程序的計算機存儲介質(zhì)。計算機程序產(chǎn)品也可以是計算系統(tǒng)可讀的、且編碼用于執(zhí)行計算機過程的指令的計算機程序的載波上的傳播信號。
閱讀以下詳細描述,并觀察附圖,表征本發(fā)明的這些和各種其它特征以及優(yōu)點將變得顯而易見。
圖1是示出在本發(fā)明的各實施例中使用且由各實施例提供的計算機系統(tǒng)的計算機系統(tǒng)體系結(jié)構(gòu)圖,圖2是依照本發(fā)明的各實施例,用于在圖1的計算機系統(tǒng)中的繪圖應用程序內(nèi)創(chuàng)建和布局圖形的各組件的框圖,圖3是依照本發(fā)明的各實施例的說明性布局樹的框圖,圖4是依照本發(fā)明的各實施例用于生成布局樹的說明性圖形定義的一部分的框圖,以及圖5是依照本發(fā)明的一個實施例,由圖1的計算機系統(tǒng)中的繪圖應用程序執(zhí)行的、用于創(chuàng)建和布局圖形的說明性例程。
具體實施例方式
現(xiàn)在參考附圖,將描述本發(fā)明的各方面,附圖中,相同的標號表示相同的元素。具體地,圖1和對應的討論旨在提供其中可實現(xiàn)本發(fā)明的各實施例的合適的計算環(huán)境的簡要概括描述。盡管將在結(jié)合運行在個人計算機上的操作系統(tǒng)上的應用程序執(zhí)行的程序模塊的一般上下文中描述本發(fā)明,然而本領(lǐng)域的技術(shù)人員將認識到,本發(fā)明也可結(jié)合其它類型的計算機系統(tǒng)和程序模塊來實現(xiàn)。
一般而言,程序模塊包括例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)以及其它類型的結(jié)構(gòu),它們執(zhí)行特定的任務或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。此外,本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以用其它計算機系統(tǒng)配置來實施,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費者電子產(chǎn)品、小型機、大型機等等。本發(fā)明也可在分布式計算環(huán)境中實施,其中任務由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備來執(zhí)行。在分布式計算環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設(shè)備中。
現(xiàn)在參考圖1,將描述在本發(fā)明的各實施例中使用的計算機2的說明性計算機體系結(jié)構(gòu)。圖1所示的計算機體系結(jié)構(gòu)示出了常規(guī)臺式或膝上計算機,包括中央處理單元5(“CPU”)、系統(tǒng)存儲器7(包括隨機存取存儲器9(“RAM”)和只讀存儲器(“ROM”)11)、以及將存儲器耦合至CPU5的系統(tǒng)總線12。包含例如在啟動時有助于在計算機內(nèi)的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)儲存在ROM11中。計算機2還包括大容量存儲設(shè)備14,用于儲存操作系統(tǒng)16、應用程序以及其它程序模塊,這些將在下文詳細描述。
大容量存儲設(shè)備14通過連接至總線12的大容量存儲控制器(未示出)連接到CPU5。大容量存儲設(shè)備14及其相關(guān)聯(lián)的計算機可讀介質(zhì)為計算機2提供了非易失性存儲。盡管此處包含的計算機可讀介質(zhì)的描述指的是大容量存儲設(shè)備,如硬盤或CD-ROM驅(qū)動器,然而本領(lǐng)域的技術(shù)人員應當理解,計算機可讀介質(zhì)可以是可由計算機2訪問的任何可用介質(zhì)。
作為示例而非局限,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于儲存諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實現(xiàn)的易失性和非易失性,可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它固態(tài)存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或可以用來儲存所期望的信息并可由計算機2訪問的任一其它介質(zhì)。
依照本發(fā)明的各實施例,計算機2可以使用通過諸如因特網(wǎng)等網(wǎng)絡(luò)18到遠程計算機的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。計算機2可以通過連接到總線12的網(wǎng)絡(luò)接口單元20連接到網(wǎng)絡(luò)18。應當理解,網(wǎng)絡(luò)接口單元20也可用于連接到其它類型的網(wǎng)絡(luò)和遠程計算機系統(tǒng)。計算機2也可包括輸入/輸出控制器22,用于接收和處理來自包括鍵盤、鼠標或電子觸針(圖1中未示出)的多個其它設(shè)備的輸入。類似地,輸入/輸出控制器22可向顯示屏幕、打印機或其它類型的輸出設(shè)備提供輸出。
如上所述,多個程序模塊和數(shù)據(jù)文件可儲存在計算機2的大容量存儲設(shè)備14和RAM9中,包括適用于控制網(wǎng)絡(luò)化個人計算機的操作的操作系統(tǒng)16,如來自華盛頓州雷蒙德市微軟公司的WINDOWS XP操作系統(tǒng)。大容量存儲設(shè)備14和RAM9也可儲存一個或多個程序模塊。具體地,大容量存儲設(shè)備14和RAM9可儲存繪圖應用程序10。繪圖應用程序10可用于提供用于諸如圖形24等圖形的創(chuàng)建和布局的功能。依照本發(fā)明的一個實施例,繪圖應用程序10包括來自微軟公司的OFFICE應用程序套件,包括WORD、EXCEL和POWERPOINT應用程序?,F(xiàn)在參考圖2,依照本發(fā)明的各實施例,示出了在繪圖應用程序10內(nèi)創(chuàng)建和布局圖形時使用的各種組件的框圖。各種組件包括數(shù)據(jù)模型30、圖形定義40、布局樹50、算法60以及形狀列表70。在本發(fā)明的各實施例中,繪圖應用程序10在圖形定義40中讀取關(guān)于圖形的創(chuàng)建和布局的指令??梢岳斫猓诒景l(fā)明的一個實施例中,數(shù)據(jù)模型30和圖形定義文件40可被儲存為計算機系統(tǒng)2中可由繪圖應用程序10訪問的各個文件。
數(shù)據(jù)模型30包括節(jié)點、關(guān)系、文本和包含用于構(gòu)造圖形24的內(nèi)容的屬性的集合。圖形定義40是描述如何創(chuàng)建特定圖形布局的數(shù)據(jù)的集合。在本發(fā)明的各實施例中,圖形定義40可以依照可擴展標記語言(“XML”)來格式化。如本領(lǐng)域的技術(shù)人員所理解的,XML是一種用于傳遞數(shù)據(jù)的標準格式。在XML數(shù)據(jù)格式中,使用模式來提供具有控制所傳遞的數(shù)據(jù)的類型和結(jié)構(gòu)的一組語法和數(shù)據(jù)類型的XML數(shù)據(jù)。XML數(shù)據(jù)格式對本領(lǐng)域的技術(shù)人員是公知的,并且因此不在此詳細討論。由圖形定義40描述的圖形的各方面包括對每一布局節(jié)點使用的布局算法名稱、算法參數(shù)、約束、以及用于構(gòu)造布局樹的約束規(guī)則、形狀幾何結(jié)構(gòu)和樣式屬性的默認值、圖形分類數(shù)據(jù)以及樣本數(shù)據(jù)模型。
約束是由布局算法用于創(chuàng)建圖形的條件。約束的一個示例是用于形狀寬度的值??梢岳斫猓s束可包括數(shù)字值或布爾值。數(shù)字約束可指定特定數(shù)字值(例如,寬度=1英寸)。數(shù)字約束也可通過使用引用來引用其它約束值來計算其值(例如,高度=寬度×0.75)。布爾約束可包括迫使集合中的所有節(jié)點對另一約束具有同一值的等式約束,并可包括其中一個約束值基于另一約束值而收限制的不等式約束(例如,形狀的寬度需要小于或大于另一形狀的高度)。約束可以在布局節(jié)點之間傳播,以在繪圖元素之間實施等式(例如,所有的正常節(jié)點具有相同的字體大小)或不等式(例如,過渡節(jié)點的寬度應當<=正常節(jié)點的寬度)。約束可通過將共享的傳播程序附加到向其它布局節(jié)點傳播其狀態(tài)的約束來傳播。可以理解,約束和約束規(guī)則都可以根據(jù)傳播約束在其它節(jié)點上更新。約束規(guī)則是對于如果一組約束不能被布局算法滿足則如何修改該組約束的描述。例如,約束可指定字體大小必須是14磅,但是約束規(guī)則可指定字體大小可減小到最小8磅。圖形定義40將在下文參考圖4更詳細討論。
布局樹34是呈現(xiàn)元素或布局節(jié)點的集合。布局節(jié)點是布局樹中表示形成圖形24的元素的一個形狀或形狀組的節(jié)點。布局節(jié)點可任選地被鏈接到數(shù)據(jù)模型30的節(jié)點。布局樹34儲存關(guān)于將組成圖形的形狀的數(shù)據(jù),包括各自的幾何結(jié)構(gòu)、屬性、文本擬合以及形狀放置。
繪圖應用程序10通過將來自數(shù)據(jù)模型的數(shù)據(jù)映射到圖形定義中的圖形布局信息以構(gòu)造布局節(jié)點,并將算法、約束和約束規(guī)則與這些布局節(jié)點相關(guān)聯(lián),來構(gòu)造布局樹。它然后在構(gòu)造用于在繪圖畫布上呈現(xiàn)圖形24的形狀列表50之前使用該算法、約束和約束規(guī)則來確定形狀尺寸、文本擬合和形狀放置。布局節(jié)點將在下文更詳細討論。布局樹34將在下文參考圖3更詳細討論。
現(xiàn)在參考圖3,依照本發(fā)明的各實施例,示出了布局樹34的一個實例的框圖。應當理解,圖3所示的布局樹是說明性的,且該布局樹可以更大或更小,取決于圖形的數(shù)據(jù)量以及如何定義圖形布局。布局樹34包括在布局圖形24時要使用的布局節(jié)點的分層排列。在本例中,布局節(jié)點表示要包含該圖形的總頁面區(qū)域一頁面節(jié)點62。頁面節(jié)點62的子節(jié)點(或第二層節(jié)點)包括圖形節(jié)點64、標題節(jié)點66以及標注節(jié)點67。圖形節(jié)點64的子節(jié)點包括第一層節(jié)點68、第二層節(jié)點70以及第三層節(jié)點72,它們表示構(gòu)成圖的圖形,并映射回數(shù)據(jù)模型元素。第三層節(jié)點也具有子節(jié)點74(點A)和76(點B),它們表示可視形狀并且也映射回數(shù)據(jù)模型元素。
現(xiàn)在參考圖4,依照本發(fā)明的各實施例,示出了圖形定義40的一部分的框圖。如圖4所示,圖形定義的實現(xiàn)基于定義圖形24的布局的XML模式。該XML模式包括LayoutNode(布局節(jié)點)標簽47,它具有子標簽,包括定義用于由布局節(jié)點布局圖形的算法類型(即,pyramid)的Algorithm(算法)標簽、用于定義可由布局節(jié)點在圖形中使用的形狀(即,trapezoid)的Shapes(形狀)標簽48、以及用于定義約束的Constraints(約束)標簽49。
現(xiàn)在參考圖5,將描述說明性例程500,它示出了由繪圖應用程序10執(zhí)行的、用于創(chuàng)建和布局圖形的過程。當閱讀此處所給出的例程的討論時,應當理解,本發(fā)明的各實施例的邏輯操作被實現(xiàn)為(1)運行在計算機系統(tǒng)上的計算機實現(xiàn)的動作或程序模塊的序列,和/或(2)計算系統(tǒng)內(nèi)互連的機器邏輯電路或電路模塊。實現(xiàn)是取決于實現(xiàn)本發(fā)明的計算系統(tǒng)的性能要求的選擇問題。因此,圖5所示且構(gòu)成此處描述的本發(fā)明的實施例的邏輯操作以不同的方式被稱為操作、結(jié)構(gòu)設(shè)備、動作或模塊。本領(lǐng)域的技術(shù)人員可以認識到,這些操作、結(jié)構(gòu)設(shè)備、動作和模塊可以用軟件、固件、專用數(shù)字邏輯以及其任一組合來實現(xiàn),而不脫離如所附權(quán)利要求書中所述的本發(fā)明的精神和范圍。
現(xiàn)在參考圖5,例程500在操作510開始,其中繪圖應用程序10接收定義要在創(chuàng)建的圖形中表示的數(shù)據(jù)和數(shù)據(jù)關(guān)系的數(shù)據(jù)模型。可以理解,依照圖形定義中指定的模式,數(shù)據(jù)和數(shù)據(jù)關(guān)系確定了由布局框架生成的布局樹34中每一布局節(jié)點的類型和數(shù)目。
例程500從操作510繼續(xù)到操作520,其中繪圖應用程序10接收圖形定義,它描述了將來自數(shù)據(jù)模型的數(shù)據(jù)映射到指定算法、參數(shù)、約束、約束規(guī)則和形狀屬性的布局節(jié)點的一種可能性。可以理解,圖形定義40可以作為儲存在計算機2中的單獨文件,諸如XML文件來檢索。以此方式,提供了對新圖形定義的開發(fā)的支持,該新圖形定義可由用戶添加,使得它們可由繪圖應用程序10來讀取。可創(chuàng)建和檢索新圖形定義,而不會改變布局框架,從而允許擴展繪圖應用程序可布局的一組圖形。
圖形定義提供了用于應用算法、參數(shù)、約束和約束條件的模式。如此處所定義的,算法是用于對形狀和文本定位和定大小的布局例程。例如,一種算法可在直線路徑上布局形狀,而另一種算法可在圓形路徑上布局圖形。可以理解,算法可采用參數(shù)來確定各種放置選項。例如,直線算法具有關(guān)于方向和方位的參數(shù),它們可通過繪圖應用程序10中的各種繪圖工具命令來控制。例如,可在繪圖應用程序10中提供用于改變布局算法的參數(shù)之一來改變圖形的方位(例如,從左到右與從右到左)或旋轉(zhuǎn)圖形的工具。算法也可對布局框架是外部的,并可被添加來擴展可在不改變布局框架的情況下創(chuàng)建的圖形的范圍。
例程500從操作520繼續(xù)到操作530,其中繪圖應用程序10從所接收的數(shù)據(jù)模型和所接收的圖形定義生成布局樹。具體地,繪圖應用程序10“走查”數(shù)據(jù)模型30中的節(jié)點,并依照圖形定義(也可由XML模式定義)將來自數(shù)據(jù)模型的節(jié)點和關(guān)系映射到特定的形狀和默認的樣式屬性(例如,格式化和文本屬性)。如以上參考圖2所討論的,布局樹34包括關(guān)于將組成圖形的形狀的數(shù)據(jù),包括各自的幾何結(jié)構(gòu)、屬性、文本擬合以及形狀放置。可以理解,布局樹是通過反復通過數(shù)據(jù)模型30并基于圖形定義中所定義的模式創(chuàng)建布局節(jié)點來創(chuàng)建的。迭代程序提供了用于通過指示如何讀取數(shù)據(jù)模型中的元素并將其映射到布局節(jié)點模式來構(gòu)造布局樹的指令。
例程500從操作530繼續(xù)到操作540,其中繪圖應用程序10使用來自圖形定義的算法、參數(shù)、約束和約束規(guī)則對布局樹中的布局節(jié)點確定形狀的大小和位置。例程500從操作540繼續(xù)到操作550,其中繪圖應用程序10基于約束值確定要呈現(xiàn)的圖形是否擬合繪圖畫布上的布局空間。
如果在操作550,要呈現(xiàn)的圖形不擬合繪圖畫布上的布局空間,則例程500繼續(xù)到操作560,其中繪圖應用程序10使用約束規(guī)則修改約束值來將圖形擬合到布局空間中。具體地,布局樹34中的布局節(jié)點可包括一組有序約束規(guī)則,繪圖應用程序10可利用該組規(guī)則來改變約束值,以試圖在布局空間內(nèi)成功地布局圖形。依照本發(fā)明的各實施例,繪圖應用程序10連續(xù)地嘗試每一規(guī)則,僅當當前規(guī)則不允許圖形在布局空間內(nèi)擬合時才移到下一規(guī)則??梢岳斫?,一旦應用程序10完成了穿過規(guī)則列表,它將自動訪問一回退(fallback)規(guī)則列表,該回退規(guī)則列表通過將形狀和字體大小收縮到非常小的尺寸、截斷文本、或不將形狀放置在布局空間中,來迫使繪圖元素在繪圖畫布上的布局空間中擬合。
應當理解,上述圖形元素包括形狀以及擬合在形狀內(nèi)的文本。由此,繪圖應用程序10也可在操作550確定是否有任何文本不擬合在繪圖畫布上的布局空間中的形狀內(nèi)??梢岳斫?,文本約束規(guī)則以及其它規(guī)則也可被包括在布局節(jié)點的約束規(guī)則列表中,以確定應用各種技術(shù)來擬合文本的順序。這些技術(shù)可包括增大形狀的尺寸或改變文本擬合約束(例如,調(diào)整邊距和字體大小)。文本算法與其中數(shù)據(jù)模型中存在數(shù)據(jù)的布局樹的布局節(jié)點相關(guān)聯(lián)。其它規(guī)則可包括用于確定兩個圖形元素之間的間距量的算法。還可以理解,其它規(guī)則可使用用于確定兩個圖形元素之間的間距量、圖形元素的相對位置等的算法。
如果在操作550,要呈現(xiàn)的圖形不擬合繪圖畫布上的布局空間,則例程500分支到操作570,其中,繪圖應用程序10基于在操作540中確定的布局樹數(shù)據(jù)為要創(chuàng)建的圖形創(chuàng)建形狀列表。一旦映射了來自數(shù)據(jù)模型30的節(jié)點以及與特定形狀或形狀屬性的關(guān)系,則可在繪圖畫布上呈現(xiàn)該形狀列表。例程500然后結(jié)束。
基于以上內(nèi)容,應當理解,本發(fā)明的各實施例包括用于管理電子文檔中的特定類型內(nèi)容的方法、裝置和計算機可讀介質(zhì)。以上說明書、示例和數(shù)據(jù)提供了對本發(fā)明的組成部分的制造和使用的完整描述。由于可以在不脫離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實施例,因此本發(fā)明歸于所附權(quán)利要求書。
權(quán)利要求
1.一種用于在應用程序內(nèi)創(chuàng)建和布局圖形的方法,包括接收數(shù)據(jù)模型,所述數(shù)據(jù)模型定義了要在所述圖形中表示的一組數(shù)據(jù)和數(shù)據(jù)關(guān)系,接收圖形定義,所述圖形定義描述了來自所述數(shù)據(jù)模型的數(shù)據(jù)到布局節(jié)點、算法、參數(shù)、約束、約束規(guī)則和形狀屬性的映射,以及使用與所述布局節(jié)點相關(guān)聯(lián)的算法、參數(shù)、約束、約束規(guī)則和形狀屬性,對所述圖形中的形狀確定形狀大小和位置。
2.如權(quán)利要求1所述的方法,其特征在于,所述圖形定義指定了用于將所述數(shù)據(jù)模型中的元素映射到所述布局節(jié)點以及與所述布局節(jié)點相關(guān)聯(lián)的一組算法、參數(shù)、約束和約束規(guī)則的迭代程序。
3.如權(quán)利要求1所述的方法,其特征在于,還包括指定多個外部圖形定義,其中,所述多個外部圖形定義的每一個指定了生成特定圖形所需的信息,所述信息包括附加映射條件、算法、參數(shù)、約束、約束規(guī)則和形狀屬性。
4.如權(quán)利要求1所述的方法,其特征在于,還包括指定多個外部算法,其中,所述多個外部算法的每一個指定了為獲得特定圖形結(jié)構(gòu)的形狀布局,并且其中,所述外部算法的每一個由圖形定義引用。
5.如權(quán)利要求1所述的方法,其特征在于,所述圖形中的形狀的形狀大小和位置是由所述算法組中的算法使用對應布局節(jié)點中的約束和約束規(guī)則來定義的。
6.如權(quán)利要求1所述的方法,其特征在于,所述約束包括用于指定由所述算法使用的值的數(shù)字約束,并且其中,所述數(shù)字約束包括特定值。
7.如權(quán)利要求6所述的方法,其特征在于,所述數(shù)字約束是由對其它約束值的引用導出的。
8.如權(quán)利要求1所述的方法,其特征在于,所述約束值依照一組約束規(guī)則來修改以對所述布局節(jié)點定大小和定位。
9.如權(quán)利要求1所述的方法,其特征在于,所述約束包括用于指定值跨形狀的等式和不等式的布爾約束,并且其中,數(shù)字約束值被傳播到由所述布爾約束指定的形狀。
10.如權(quán)利要求1所述的方法,其特征在于,多個布局節(jié)點彼此傳遞約束值,以使能夠使用所述約束來對所述布局節(jié)點定大小和定位。
11.如權(quán)利要求1所述的方法,其特征在于,所述圖形定義是以標記語言來書寫的。
12.如權(quán)利要求9所述的方法,其特征在于,所述標記語言是可擴展標記語言(XML)。
13.一種用于在繪圖應用程序中創(chuàng)建和布局圖形的系統(tǒng),包括用于執(zhí)行接收數(shù)據(jù)模型的程序代碼的客戶機計算機,所述數(shù)據(jù)模型定義了要在所述圖形中表示的一組數(shù)據(jù)和數(shù)據(jù)關(guān)系,接收圖形定義,所述圖形定義描述了來自所述數(shù)據(jù)模型的數(shù)據(jù)到布局節(jié)點、算法、參數(shù)、約束、約束規(guī)則和形狀屬性的映射,以及使用與所述布局節(jié)點相關(guān)聯(lián)的算法、參數(shù)、約束、約束規(guī)則和形狀屬性,對所述圖形中的形狀確定形狀大小和位置。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述圖形定義指定了用于將所述數(shù)據(jù)模型中的元素映射到所述布局節(jié)點以及與所述布局節(jié)點相關(guān)聯(lián)的一組算法、參數(shù)、約束和約束規(guī)則的迭代程序。
15.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述程序代碼還用于指定多個外部圖形定義,其中,所述多個外部圖形定義的每一個指定了生成特定圖形所需的信息,所述信息包括附加映射條件、算法、參數(shù)、約束、約束規(guī)則和形狀屬性。
16.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述程序代碼還用于指定多個外部算法,其中,所述多個外部算法的每一個指定了為獲得特定的圖形結(jié)構(gòu)的形狀布局,并且其中,所述外部算法的每一個由圖形定義引用。
17.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述圖形中的形狀的形狀大小和位置是由所述算法組中的算法使用對應的布局節(jié)點中的約束和約束規(guī)則來定義的。
18.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述約束包括用于指定由所述算法使用的值的數(shù)字約束,并且其中,所述數(shù)字約束包括特定值。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述數(shù)字約束是由對其它約束值的引用導出的。
20.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述約束值依照所述約束規(guī)則來修改以對所述布局節(jié)點定大小和定位。
21.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述約束包括用于指定值跨形狀的等式和不等式的布爾約束,并且其中,所述數(shù)字約束值被傳播到由所述布爾約束指定的形狀。
22.如權(quán)利要求13所述的系統(tǒng),其特征在于,多個布局節(jié)點彼此傳遞約束值,以使能夠使用所述約束對所述布局節(jié)點定大小和定位。
23.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述圖形定義是以標記語言來書寫的。
24.如權(quán)利要求23所述的系統(tǒng),其特征在于,所述標記語言是可擴展標記語言(XML)。
25.一種其上儲存有計算機可執(zhí)行指令的計算機可讀介質(zhì),當所述指令由計算機執(zhí)行時,將使所述計算機執(zhí)行一種用于在應用程序內(nèi)創(chuàng)建和布局圖形的方法,所述方法包括接收數(shù)據(jù)模型,所述數(shù)據(jù)模型定義了要在所述圖形中表示的一組數(shù)據(jù)和數(shù)據(jù)關(guān)系,接收圖形定義,所述圖形定義描述了來自所述模型的數(shù)據(jù)到布局節(jié)點、算法、參數(shù)、約束、約束規(guī)則和形狀屬性的映射,以及使用與所述布局節(jié)點相關(guān)聯(lián)的算法、參數(shù)、約束、約束規(guī)則和形狀屬性,對所述圖形中的形狀確定形狀大小和位置。
26.如權(quán)利要求25所述的計算機可讀介質(zhì),其特征在于,所述圖形定義指定了用于將所述數(shù)據(jù)模型中的元素映射到所述布局節(jié)點以及與所述布局節(jié)點相關(guān)聯(lián)的一組算法、參數(shù)、約束和約束規(guī)則的迭代程序。
27.如權(quán)利要求25所述的計算機可讀介質(zhì),其特征在于,還包括指定多個外部圖形定義,其中,所述多個外部圖形定義的每一個指定了生成特定圖形所需的信息,所述信息包括附加映射條件、算法、參數(shù)、約束、約束規(guī)則和形狀屬性。
28.如權(quán)利要求25所述的計算機可讀介質(zhì),其特征在于,還包括指定多個外部算法,其中,所述多個外部算法的每一個指定了為獲得特定圖形結(jié)構(gòu)的圖形布局,并且其中,所述外部算法的每一個由圖形定義引用。
29.如權(quán)利要求25所述的計算機可讀介質(zhì),其特征在于,所述圖形中的形狀的形狀大小和位置是由所述算法組中的算法使用對應的布局節(jié)點中的約束和約束規(guī)則來定義的。
30.如權(quán)利要求25所述的計算機可讀介質(zhì),其特征在于,所述約束包括用于指定由所述算法使用的數(shù)字約束,并且其中,所述數(shù)字約束包括特定值。
31.如權(quán)利要求30所述的計算機可讀介質(zhì),其特征在于,所述數(shù)字約束是由對其它約束值的引用導出的。
32.如權(quán)利要求25所述的計算機可讀介質(zhì),其特征在于,所述約束值依照一組約束規(guī)則來修改,以對所述布局節(jié)點定大小和定位。
33.如權(quán)利要求25所述的計算機可讀介質(zhì),其特征在于,所述約束包括用于指定值跨形狀的等式和不等式的布爾約束,并且其中,所述數(shù)字約束值被傳播到由所述布爾約束指定的形狀。
34.如權(quán)利要求25所述的計算機可讀介質(zhì),其特征在于,多個布局節(jié)點彼此傳遞約束值,以使能夠使用所述約束來對所述布局節(jié)點定大小和定位。
35.如權(quán)利要求25所述的計算機可讀介質(zhì),其特征在于,所述圖形定義是以標記語言來書寫的。
36.如權(quán)利要求35所述的計算機可讀介質(zhì),其特征在于,所述標記語言是可擴展標記語言(XML)。
全文摘要
提供了一種用于在繪圖應用程序內(nèi)創(chuàng)建和布局圖形的方法、裝置和計算機可讀介質(zhì)。該方法包括接收定義要在圖形中表示的一組數(shù)據(jù)和數(shù)據(jù)關(guān)系的模型;接收描述來自數(shù)據(jù)模型的數(shù)據(jù)到一組算法、算法參數(shù)、約束、約束規(guī)則和形狀屬性的映射的圖形定義;使用來自圖形定義的該組算法、約束和約束規(guī)則對布局節(jié)點確定形狀大小和位置;以及對該圖形創(chuàng)建形狀和形狀屬性列表,包括大小和位置。該方法還包括基于該組約束值確定圖形是否將給定布局擬合到特定區(qū)域中,并且如果圖形不擬合特定區(qū)域,則使用約束規(guī)則來修改該組約束值。
文檔編號G06F17/30GK1755623SQ20051009965
公開日2006年4月5日 申請日期2005年8月30日 優(yōu)先權(quán)日2004年9月30日
發(fā)明者J·L·肖爾, S·T·韋爾斯, M·科特勒, T·C·昂得希爾, S·A·舍曼, I·伯科 申請人:微軟公司