專利名稱:用于調(diào)整對象間距的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及改進的數(shù)據(jù)處理系統(tǒng),具體地涉及一種用于增加和減少兩個或多個對象之間的間距的方法和設(shè)備。
如同通常所指出的,圖形用戶接口或GUI已經(jīng)日益成為計算機尤其是個人計算機(PC)的公共和普遍的特征。這類GUI的許多優(yōu)點中的一個是它們允許用戶通過使用指點裝置例如鼠標(biāo)來選擇和操縱圖形顯示單元例如圖標(biāo)以便用圖形方式建立和編輯文檔和結(jié)構(gòu)。AppleMacintosh用戶接口、Microsoft Windows操作環(huán)境和UNIX X-Windows是GUI中公共和非常普遍的例子,這說明公眾已經(jīng)普遍公認GUI比傳統(tǒng)的基于文本的用戶接口具有優(yōu)點。
圖形軟件是受益于GUI的一個領(lǐng)域。能夠允許用戶建立和編輯圖形和說明的圖形軟件應(yīng)用程序向用戶提供一個環(huán)境,在該環(huán)境中可編輯的文檔模仿它將在印刷頁面上、萬維網(wǎng)(WWW)文檔上等采取的形式。這稱為“你看到的就是你得到的”或“WYSIWYG”。通常用戶可以選擇顯示一個網(wǎng)格或尺子,以有助于在顯示屏上排列圖形對象。圖形和說明經(jīng)常標(biāo)示對象是沿著顯示屏上的一條線排列的。為了表示的均勻性、對稱性或雅觀,尤其當(dāng)希望這些對象彼此間保持等距時,這些對象之間的位置將會是重要的。當(dāng)今的圖形軟件應(yīng)用程序不允許用戶容易地設(shè)置多個對象彼此之間的位置。
在字處理中,“調(diào)整間距”(kerning)是涉及將任何兩個相鄰字母之間的間距量稍微減少或增加從而調(diào)整文本的操作。調(diào)整間距通常用于改進文本的總體外觀。調(diào)整間距的程度決定于字體設(shè)計和具體的一對字母。
當(dāng)今圖形軟件應(yīng)用程序不允許用戶容易地調(diào)整任何兩個或多個圖形對象之間的間距量,因為對象的位置是獨立的。此外,圖形對象并不總是沿著一條水平線或垂直線排列。因此希望有一種技術(shù),用于沿著水平線、垂直線或斜線調(diào)整圖形對象間距。
本發(fā)明能夠克服現(xiàn)有技術(shù)中的缺點,它允許用戶在顯示屏上選擇多個圖形對象以及選擇或輸入對象之間的距離。根據(jù)用戶的輸入值來將這些距離調(diào)整或增加或減少。
所附權(quán)利要求書中提及本發(fā)明的認為有特色的新穎特征。然而,結(jié)合附圖閱讀闡述性實施例的以下詳細說明后,將能很好地理解本發(fā)明本身以及其優(yōu)選使用模式、進一步目的及優(yōu)點,附圖中
圖1是其中可以實施本發(fā)明的數(shù)據(jù)處理系統(tǒng)的圖形表示。
圖2是其中可以實施本發(fā)明的數(shù)據(jù)處理系統(tǒng)的框圖。
圖3是其中可以實施本發(fā)明的圖形程序的示例性顯示屏。
圖4A、4B、4C和4D是用于顯示本發(fā)明的調(diào)整對象間距技術(shù)的實施例的示例性顯示屏。
圖5A、5B和5C是當(dāng)圖形對象沿著斜線排列時用于顯示本發(fā)明的調(diào)整對象間距技術(shù)的實施例的示例性顯示屏。
圖6是本發(fā)明的一般操作的流程圖。
圖7是本發(fā)明的優(yōu)選實施例的圖形對象的排列操作的流程圖。
圖8A是根據(jù)本發(fā)明的優(yōu)選實施例的圖形對象的水平排列和調(diào)整間距操作的流程圖。
圖8B是根據(jù)本發(fā)明的優(yōu)選實施例的圖形對象的垂直排列和調(diào)整間距操作的流程圖。
圖8C是根據(jù)本發(fā)明的優(yōu)選實施例的圖形對象的斜線排列和調(diào)整間距操作的流程圖。
圖9是根據(jù)本發(fā)明優(yōu)選實施例的調(diào)整圖形對象間距操作的流程圖。
現(xiàn)在參照附圖,具體地參照圖1,圖中闡述根據(jù)本發(fā)明優(yōu)選實施例的其中可以實施本發(fā)明的數(shù)據(jù)處理系統(tǒng)的圖形表示。所闡述的計算機100包括一個系統(tǒng)單元110、一個視頻顯示終端102、一個鍵盤104、可能包括軟盤驅(qū)動器和其他類型永久性和可卸式存儲媒體的存儲設(shè)備108以及鼠標(biāo)106。個人計算機100可能包括附加輸入設(shè)備,例如操縱桿、觸摸板、觸摸屏、軌跡球、話筒等。計算機100可以使用任何合適的計算機例如IBM RS/6000計算機或IntelliStation計算機來實施,它們是位于紐約州Armonk的國際商業(yè)機器公司的產(chǎn)品。雖然所闡述的表示顯示一個計算機,但本發(fā)明的其他實施例可用其他類型的數(shù)據(jù)處理系統(tǒng)例如網(wǎng)絡(luò)計算機來實施。計算機100也可優(yōu)選地包括一個可以用位于在計算機100中操作的計算機可讀媒體中的系統(tǒng)軟件來實施的圖形用戶接口。
現(xiàn)在參照圖2,圖中顯示其中可以實施本發(fā)明的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是計算機例如圖1中的計算機100的例子,用于實施本發(fā)明過程的代碼或指令可能位于其中。數(shù)據(jù)處理系統(tǒng)200采用一個外圍部件互連(PCI)局部總線體系結(jié)構(gòu)。雖然所闡述的例子采用一條PCI總線,但也可使用其他總線體系結(jié)構(gòu)例如加速圖形端口(AGP)和工業(yè)標(biāo)準體系結(jié)構(gòu)(ISA)。處理器202和主存儲器204通過PCI橋208連至PCI局部總線206。PCI橋208也可包括處理器202的集總式存儲器控制器和高速緩存。也可通過直接部件互連或通過附加板實現(xiàn)連至PCI局部總線206的附加連接。在所闡述的例子中,局域網(wǎng)(LAN)適配器210、小計算機系統(tǒng)接口SCSI主總線適配器212和擴展總線接口214通過直接部件連接連至PCI局部總線206。相反,音頻適配器216、圖形適配器218和音頻/視頻適配器219則通過插入擴展槽中的附加板連至PCI局部總線206。擴展總線接口214提供一個對鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222和附加存儲器224的連接。SCSI主總線適配器212提供一個對硬盤驅(qū)動器226、磁帶驅(qū)動器228和CD-ROM驅(qū)動器230的連接。通常PCI局部總線支持三個或四個PCI擴展槽或附加接插件。
一個操作系統(tǒng)在處理器202上運行,并且用于對圖2的數(shù)據(jù)處理系統(tǒng)200內(nèi)的不同部件進行協(xié)調(diào)和提供控制。操作系統(tǒng)可以是市場上可從微軟公司買到的操作系統(tǒng)例如Windows 2000。一個面向?qū)ο缶幊滔到y(tǒng)例如Java可以與操作系統(tǒng)一起運行并且提供條件以便從在數(shù)據(jù)處理系統(tǒng)200上運行的Java程序或應(yīng)用程序中對操作系統(tǒng)進行調(diào)用?!癑ava”是太陽微系統(tǒng)公司的注冊商標(biāo)。操作系統(tǒng)、面向?qū)ο蟛僮飨到y(tǒng)和應(yīng)用程序或程序的指令都位于存儲設(shè)備例如硬盤驅(qū)動器226上,并且可以裝入主存儲器204中以供處理器202執(zhí)行。
本領(lǐng)域普通技術(shù)人員知道圖2中的硬件可以隨不同實施例而不同。其他內(nèi)部硬件或外圍設(shè)備例如閃爍ROM(或等效的非易失性存儲器)或光盤驅(qū)動器等可以在圖2中所闡述的硬件之外使用或替代它們。還有,本發(fā)明的過程可以應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。
例如,如果可選地配置為網(wǎng)絡(luò)計算機,則數(shù)據(jù)處理系統(tǒng)200不能包括SCSI主總線適配器212、硬盤驅(qū)動器226、磁帶驅(qū)動器228和CD-ROM230,如圖2中虛線232所標(biāo)注的可選項。在此情況下,應(yīng)該恰當(dāng)?shù)胤Q為客戶計算機的計算機必須包括某些類型的網(wǎng)絡(luò)通信接口例如LAN適配器210、調(diào)制解調(diào)器222等。作為另一個例子,數(shù)據(jù)處理系統(tǒng)200可以是一個配置為不依賴于某些類型的網(wǎng)絡(luò)通信接口而可以自舉的獨立系統(tǒng),其中無論數(shù)據(jù)處理系統(tǒng)200是否包括某些類型的網(wǎng)絡(luò)通信接口都無所謂。作為另一個例子,數(shù)據(jù)處理系統(tǒng)200可以是一個個人數(shù)字助理(PDA)設(shè)備,它配置為具有ROM和/或閃爍ROM從而提供非易失性存儲器,用于存儲操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)。
圖2中所闡述的例子和以上所述例子并不意味著要對體系結(jié)構(gòu)施加限制。例如,數(shù)據(jù)處理系統(tǒng)200也可是一個PDA形式以外的筆記本計算機或手持計算機。數(shù)據(jù)處理系統(tǒng)200也可是一個網(wǎng)巴(kiosk)或網(wǎng)絡(luò)家用電器。
本發(fā)明的過程由處理器202使用計算機實施的指令來完成,這些指令可能位于存儲器內(nèi)例如主存儲器204、存儲器224內(nèi)或一個或多個外圍設(shè)備226-230內(nèi)。
為闡述目的,以下所示例子和附圖是用Macromedia Freehand實施的。認為此處所示任何注冊商標(biāo)和具有版權(quán)的信息都屬于Macromedia公司,該公司地址為600 Townsend St.,San Francisco,California 94103。本發(fā)明的機制可以在能夠顯示圖形對象的圖形程序中實施。在此例中,可以通過修改現(xiàn)有圖形應(yīng)用程序的代碼或者通過修補程序或宏來實施本發(fā)明,這是現(xiàn)有技術(shù)中已知的。
圖3中顯示圖形應(yīng)用程序的顯示屏例子。該屏幕包括視窗300,后者包括一個名稱條302。圖形應(yīng)用程序視窗300還包括一個菜單條304和工具條306。可以從菜單條304中選擇的菜單包括“文件”、“編輯”、“觀看”、“修改”、“文本”、“Xtras”、“視窗”和“幫助”。當(dāng)然,如本領(lǐng)域普通技術(shù)人員所知道的,菜單條304可以包括更少或更多菜單。工具條306是一連串的用于在被選擇時產(chǎn)生命令的按鈕。圖形程序視窗300還包括一個顯示區(qū)308。
圖3中還顯示了一個文檔視窗310和一個游動工具條或銜鐵(pallet)316。文檔視窗310中顯示的圖形文檔例子包括框314中的圖形對象?,F(xiàn)結(jié)合文檔例子描述本發(fā)明的操作;然而應(yīng)該知道本發(fā)明可以實施為用于任何圖形繪圖或包含圖形對象的說明中。
現(xiàn)在轉(zhuǎn)向圖4A,所顯示的顯示屏中已經(jīng)選擇多個圖形對象,如增亮部分414所示。銜鐵416顯示所選對象的數(shù)量418及所選每對對象之間的距離420。在圖4A中所示例子中所選對象的數(shù)量是“5”及所選對象之間的距離(也稱為對象間距離)是“2”。根據(jù)本發(fā)明優(yōu)選實施例,可以通過直接輸入一個值至距離域420中而調(diào)整對象間距離。選代地,可以選擇按鈕422來增加或減少距離值。本領(lǐng)域普通技術(shù)人員顯然知道其他用于調(diào)整距離值的技術(shù)。
參照圖4B,所顯示的顯示屏中距離域420中的距離值已從“2”改為“6”。改變的距離稱為調(diào)整的距離。根據(jù)本發(fā)明優(yōu)選實施例,已經(jīng)響應(yīng)于所輸入距離值調(diào)整了所選對象414的位置。
現(xiàn)在轉(zhuǎn)向圖4C,所顯示的顯示屏中已經(jīng)選擇多個圖形對象,如增亮部分414所示。在圖4C中所示例子中,所選對象的數(shù)量是“3”及所選對象之間的距離是“6”。參照圖4D,所顯示的顯示屏中距離域420內(nèi)的距離值已經(jīng)從“6”改為“2”。根據(jù)本發(fā)明優(yōu)選實施例,已經(jīng)響應(yīng)于所輸入距離值調(diào)整了所選對象414的位置。
圖5A中顯示圖形應(yīng)用程序的顯示屏例子。文檔視窗510中所示圖形文檔例子包括在斜線上排列的圖形對象514?,F(xiàn)在結(jié)合文檔例子描述對斜線上排列的對象的本發(fā)明操作。
現(xiàn)在轉(zhuǎn)向圖5B,所顯示的顯示屏中已經(jīng)選擇多個圖形對象,如增亮部分514所示。銜鐵516顯示所選對象的數(shù)量518及所選每對對象之間的距離520。在圖5B中所示例子中所選對象的數(shù)量是“3”及所選對象之間的距離是“2”。
參照圖5C,所顯示的顯示屏中距離域520中的距離值已從“2”改為“4”。根據(jù)本發(fā)明優(yōu)選實施例,已經(jīng)響應(yīng)于所輸入距離值調(diào)整了所選對象514的位置。
現(xiàn)在參照圖6,其中闡述根據(jù)本發(fā)明優(yōu)選實施例的圖形軟件應(yīng)用程序的一般操作的流程圖。可以在圖3中所示圖形程序中實施本發(fā)明,其中圖形程序提供傳統(tǒng)圖形程序的功能。然而,本發(fā)明的圖形程序允許用戶調(diào)整圖形對象之間的距離而不需單獨地測量每個距離和移動每個對象。
程序開始運行(步驟600)及判斷是否選擇了一個對象(步驟602)。通常通過使用指點裝置例如鼠標(biāo)、軌跡球或觸摸板操縱指示箭頭將對象增亮而選擇對象。本領(lǐng)域普通技術(shù)人員顯然知道其他選擇對象的方法例如通過光標(biāo)控制鍵和菜單命令。如果選擇了一個對象,則判斷該對象是否為第一個或唯一的所選對象(步驟604)。如果該對象是第一個所選對象,則指定該對象為“錨”(步驟606)。
在調(diào)整對象間距時錨對象的位置是固定的,而所有其他所選對象都相對于錨對象來重新定位。應(yīng)該知道,也可將最左、最右或中心對象指定為錨對象來完成錨對象的選擇。在本發(fā)明的選代實施例中,可以不指定錨對象而將各對象排列。例如,本發(fā)明的過程可以使對象向中心對齊或使對象向各邊界對齊。
其次,將變量“N”設(shè)置為值“1”(步驟608)及過程回至步驟602以便判斷是否選擇了一個對象。N表示選擇中對象數(shù)量的計數(shù)。
再次參照步驟604,如果所選對象不是第一個所選對象,則將該對象附加至所選對象中(步驟610)及將N值增1(步驟612)。然后,過程回至步驟602以便判斷是否選擇了一個對象。
如果在步驟602中沒有選擇對象,則判斷用戶是否請求過進行操作(步驟614)。在所闡述的例子中,一個操作可以是由用戶發(fā)出的任何命令,例如“最小化”或“打印”。如果并未請求過操作,則過程回至步驟602以便重復(fù)判斷是否選擇了一個對象。
如果在步驟614中請求了操作,則判斷是否已經(jīng)選擇了各對象(步驟616)。如果已經(jīng)選擇了各對象,則判斷是否已經(jīng)收到將所選對象的距離調(diào)整的指令(步驟618)。用戶通過圖形用戶接口例如技術(shù)中知道的按鈕和菜單、擊鍵和/或命令行接口來發(fā)出命令和指令給程序。本領(lǐng)域普通技術(shù)人員顯然知道其他允許用戶發(fā)出命令的手段。例如Windows操作系統(tǒng)中的右擊能力也可用于表示附加菜單選擇,例如當(dāng)通過增亮而選擇對象時的“調(diào)整對象距離”菜單選擇。
如果收到調(diào)整距離的指令,則過程將所選對象排列(步驟620),調(diào)整所選對象之間的距離(步驟622)。,并且回至步驟602以便判斷是否選擇了一個對象。以下結(jié)合圖7更詳細地描述根據(jù)本發(fā)明優(yōu)選實施例的步驟620中將所選對象排列的詳細操作。以下結(jié)合圖9更詳細地描述根據(jù)本發(fā)明優(yōu)選實施例的步驟622中將所選對象之間的距離調(diào)整的詳細操作。
再次參照步驟618,如果沒有收到調(diào)整所選對象距離的指令,則判斷所請求操作是否在所選對象上進行(步驟624)。在所選對象上進行的操作包括但不限于“移動”、“剪切”、“復(fù)制”、和“清除”,這些都是技術(shù)中知道的。如果所請求操作是在所選對象上進行,則過程如同傳統(tǒng)圖形程序那樣地完成該操作(步驟626),過程回至步驟602以便判斷是否選擇了一個對象。如果在步驟624中判斷所請求操作不是在所選對象上進行,則過程如同傳統(tǒng)圖形程序那樣地進一步完成任何其他操作(步驟628)??梢酝瓿傻钠渌僮骺赡馨ㄒ陨纤龅摹白钚』被颉按蛴 ?;然而,這類操作不是本發(fā)明的重點,因此不再進行更詳細的討論。
再次參照步驟616,如果沒有選擇各對象,則判斷該請求的操作是否為一條退出命令(步驟630)。如果該操作是退出命令,則操作結(jié)束(步驟632)及程序關(guān)閉。如果在步驟630中操作不是退出命令,則過程進至步驟628并且完成任何其他所請求操作。然后過程回至步驟602以便判斷是否選擇了一個對象。
現(xiàn)在參照圖7,圖中闡述根據(jù)本發(fā)明優(yōu)選實施例的圖6中步驟620中將圖形對象排列的操作的流程圖。
過程在步驟700處開始并且計算每個對象的中心的笛卡爾坐標(biāo)(xi,yi)(步驟702)。然后過程為對象的各中心擬合一條線性回歸線(步驟704)并且計算該線的斜率為“m”。其次,判斷該斜率m的絕對值是否小于第一預(yù)定閾值(步驟708)。在所闡述的例子中,該閾值設(shè)置為等于0.1;當(dāng)然該閾值可以是足夠合理地小的用于標(biāo)示該線是一條水平線的任何值。如果該斜率低于第一預(yù)定閾值,則水平地調(diào)整間距(步驟710)并且過程結(jié)束(步驟722)。下面結(jié)合圖8A更詳細地闡述根據(jù)本發(fā)明優(yōu)選實施例的水平調(diào)整間距的詳細操作。
如果在步驟708中該斜率絕對值大于或等于第一預(yù)定閾值,則判斷該斜率的絕對值是否大于第二預(yù)定閾值(步驟712)。在所闡述的例子中,該閾值設(shè)置為等于1000;然而該閾值可以是足夠合理地大的用于標(biāo)示該線是一條垂直線的任何值。如果該斜率大于第二預(yù)定閾值,則垂直地調(diào)整間距(步驟714)并且過程結(jié)束(步驟722)。下面結(jié)合圖8B更詳細地闡述根據(jù)本發(fā)明優(yōu)選實施例的垂直調(diào)整間距的詳細操作。
如果步驟712中斜率的絕對值不大于第二預(yù)定閾值,則過程提示用戶選擇一種排列并且接收用戶的選擇(步驟716)。然后判斷用戶是否選擇了水平排列、垂直排列或是斜線排列(步驟718)。如果用戶選擇了水平排列,則過程進至步驟710以便水平地調(diào)整間距并且過程結(jié)束(步驟722)。如果用戶選擇了垂直排列,則過程進至步驟714以便垂直地調(diào)整間距并且過程結(jié)束(步驟722)。如果用戶選擇了斜線排列,則過程進至步驟720以便斜線地調(diào)整間距并且過程結(jié)束(步驟722)。下面結(jié)合圖8C更詳細地闡述根據(jù)本發(fā)明優(yōu)選實施例的斜線調(diào)整間距的詳細操作。
現(xiàn)在轉(zhuǎn)至圖8A,圖中闡述根據(jù)本發(fā)明優(yōu)選實施例的圖7的步驟710中將圖形對象水平地排列和調(diào)整間距的操作的流程圖。過程在步驟800處開始并且將一條線設(shè)置為y=ya,其中錨對象的ya=yi(步驟801)。然后過程從左至右將對象重新計數(shù)(步驟802)。
其次,過程將變量“i”初始化為等于1及使變量dtotal等于零(步驟803)并且進至步驟804,其中判斷是否i=N+1。如果i不等于N+1,則過程在對象Oi周圍畫一個可能最小的矩形框,其兩側(cè)具有垂直斜率(步驟805)。其左側(cè)指定為“前”側(cè)及其右側(cè)指定為“后”側(cè)(步驟806)。此指定內(nèi)容是為標(biāo)記目的,以便與以下描述的垂直和斜線排列和調(diào)整間距過程相兼容。然后過程計算對象Oi的后側(cè)與對象Oi+1的前側(cè)之間的距離di(步驟807)。此后過程計算dtotal=dtotal+di(步驟808)以及設(shè)置i=i+1(步驟809)并且回至步驟804以便判斷是否i=N+1。
再次參照步驟804,如果i=N+1則過程計算dave=dtotal/n(步驟810)以及向用戶顯示dave的值(步驟811)。然后將i的值設(shè)置為等于a-1,其中Oa是錨對象(步驟812)并且判斷是否i=0(步驟813)。如果i不等于零,則過程將對象Oi移動以使中心點(xi,yi)位于線上,同時使Oi的后側(cè)與Oi+1的前側(cè)的距離是dave(步驟814)。其次,過程設(shè)置i=i-1(步驟815)并且回至步驟813以便判斷是否i=0。
如果在步驟813中i=0,則過程計算i=a+1,其中Oa是錨對象(步驟816)并且判斷是否i=N+1(步驟817)。如果i不等于N+1,則過程將對象Oi移動以使中心點(xi,yi)位于線上,同時使Oi的前側(cè)與Oi-1的后側(cè)的距離是dave(步驟818)。此后,過程設(shè)置i=i+1(步驟819)并且回至步驟817以便判斷是否i=N+1。如果步驟817中i=N+1,則過程結(jié)束(步驟820)。
現(xiàn)在轉(zhuǎn)向圖8B,圖中闡述根據(jù)本發(fā)明優(yōu)選實施例的在圖7中的步驟714處將圖形對象垂直排列和調(diào)整間距的操作的流程圖。過程在步驟830處開始并且將一條線設(shè)置為x=xa,其中錨對象的xa=xi(步驟831)。然后過程自頂向底將對象重新計數(shù)(步驟832)。
其次,過程將變量“i”初始化為等于1及使變量dtotal等于零(步驟833)并且進至步驟834,其中判斷是否i=N+1。如果i不等于N+1,則過程在對象Oi周圍畫一個可能最小的矩形框,其兩側(cè)具有水平斜率(步驟835)。其頂側(cè)指定為“前”側(cè)及其底側(cè)指定為“后”側(cè)(步驟836)。此指定內(nèi)容只是為標(biāo)記目的,以便與以下描述的水平和斜線排列和調(diào)整間距過程相兼容。然后過程計算對象Oi的后側(cè)與對象Oi+1的前側(cè)之間的距離di(步驟837)。此后過程計算dtotal=dtotal+di(步驟838)以及設(shè)置i=i+1(步驟839)并且回至步驟834以便判斷是否i=N+1。
再次參照步驟834,如果i=N+1則過程計算dave=dtotal/n(步驟840)以及向用戶顯示dave的值(步驟841)。然后將i的值設(shè)置為等于a-1,其中Oa是錨對象(步驟842)并且判斷是否i=0(步驟843)。如果i不等于零,則過程將對象Oi移動以使中心點(xi,yi)位于線上,同時使Oi的后側(cè)與Oi+1的前側(cè)的距離是dave(步驟844)。此后,過程設(shè)置i=i-1(步驟845)并且回至步驟843以便判斷是否i=0。
如果在步驟843中i=0,則過程計算i=a+1,其中Oa是錨對象(步驟846)并且判斷是否i=N+1(步驟847)。如果i不等于N+1,則過程將對象Oi移動以使中心點(xi,yi)位于線上,同時使Oi的前側(cè)與Oi-1的后側(cè)的距離是dave(步驟848)。此后,過程設(shè)置i=i+1(步驟849)并且回至步驟847以便判斷是否i=N+1。如果步驟847中i=N+1,則過程結(jié)束(步驟850)。
現(xiàn)在轉(zhuǎn)向圖8C,圖中闡述根據(jù)本發(fā)明優(yōu)選實施例的在圖7中的步驟720處將圖形對象斜線排列和調(diào)整間距的操作的流程圖。過程在步驟860處開始并且將一條線設(shè)置為y=mx+b,其中b=ya-mxa以及(xa,ya)是錨對象Oa的中心點。然后過程從左至右將對象重新計數(shù)(步驟862)。
其次,過程將變量“i”初始化為等于1及使變量dtotal等于零(步驟863)并且進至步驟864,其中判斷是否i=N+1。如果i不等于N+1,則過程在對象Oi周圍畫一個可能最小的矩形框,其兩側(cè)具有垂直于該線的斜率(步驟865)。其左側(cè)指定為“前”側(cè)及其右側(cè)指定為“后”側(cè)(步驟866)。此指定內(nèi)容只是為標(biāo)記目的,以便與以下描述的垂直和水平排列和調(diào)整間距過程相兼容。選代地,可以自頂向底地將各對象計數(shù),以及將其頂側(cè)指定為“前”側(cè)及其底側(cè)指定為“后”側(cè)。然后過程計算對象Oi的后側(cè)與對象Oi+1的前側(cè)之間的距離di(步驟867)。此后過程計算dtotal=dtotal+di(步驟868)以及設(shè)置i=i+1(步驟869)并且回至步驟864以便判斷是否i=N+1。
再次參照步驟864,如果i=N+1則過程計算dave=dtotal/n(步驟870)以及向用戶顯示dave的值(步驟871)。然后將i的值設(shè)置為等于a-1,其中Oa是錨對象(步驟872)并且判斷是否i=0(步驟873)。如果i不等于零,則過程將對象Oi移動以使中心點(xi,yi)位于線上,同時使Oi的后側(cè)與Oi+1的前側(cè)的距離是dave(步驟874)。此后,過程設(shè)置i=i-1(步驟875)并且回至步驟873以便判斷是否i=0。
如果在步驟873中i=0,則過程計算i=a+1,其中Oa是錨對象(步驟876)并且判斷是否i=N+1(步驟877)。如果i不等于N+1,則過程將對象Oi移動以使中心點(xi,yi)位于線上,同時使Oi的前側(cè)與Oi-1的后側(cè)的距離是dave(步驟878)。此后,過程設(shè)置i=i+1(步驟879)并且回至步驟877以便判斷是否i=N+1。如果步驟877中i=N+1,則過程結(jié)束(步驟880)。
現(xiàn)在參照圖9,圖中闡述根據(jù)本發(fā)明優(yōu)選實施例的圖6步驟622中調(diào)整圖形對象間距操作的流程圖。過程在步驟900處開始并且確定對象之間的距離為“d”(步驟902)。判斷用戶是否輸入了一個距離值(步驟904)。如果輸入了一個距離,則過程接收輸入的距離值dnew(步驟906)并且設(shè)置d=dnew(步驟908)。根據(jù)本發(fā)明的優(yōu)選實施例,可以直接將距離值輸入至距離域420中。過程然后進至步驟922并且如下所述地調(diào)整對象間距。
如果在步驟904中用戶沒有輸入距離值,則判斷用戶是否已經(jīng)收到一條增加指令(步驟910)。如果已經(jīng)收到增加指令,則過程設(shè)置d=d+1(步驟912)并且進至步驟922和如下所述地調(diào)整對象間距。如果在步驟910中沒有收到過增加指令,則判斷用戶是否已經(jīng)收到減少指令(步驟914)。如果已經(jīng)收到減少指令,則過程設(shè)置d=d-1(步驟916)并且進至步驟922和如下所述地調(diào)整對象間距。
再次參照步驟914,如果沒有收到過減少指令,則判斷用戶是否已經(jīng)收到“退出”指令(步驟918)。一條“退出”指令可以是用戶用于結(jié)束程序、關(guān)閉文檔或者調(diào)整對象間距銜鐵416的指令。如本領(lǐng)域普通技術(shù)人員所知道的,一條“退出”指令也可是用戶采取的任何操作,用于標(biāo)示用戶已經(jīng)完成調(diào)整對象間距。例如,任何會導(dǎo)致多個對象被放棄的操作可能是一條“退出”指令。如果在步驟918中收到一條“退出”指令,則過程結(jié)束(步驟920)。如果沒有收到“退出”指令,則過程回至步驟904以便判斷是否輸入了距離值。
再次參照步驟922,過程設(shè)置i=a-1,其中Oa是錨對象,以及判斷是否i=0(步驟924)。如果i不等于零,則過程將對象Oi移動以使(xi,yi)位于線上,同時使Oi的“后”側(cè)與Oi+1的“前”側(cè)的距離是d(步驟926)。此后,過程設(shè)置i=i-1(步驟928)并且回至步驟924以便判斷是否i=0。如果步驟924中i=0,則過程設(shè)置i=a+1,其中Oa是錨對象(步驟930)并且判斷是否i=N+1(步驟932)。如果i不等于N+1,則過程將對象Oi移動以使(xi,yi)位于線上,同時使Oi的“前“側(cè)與Oi-1的“后”側(cè)的距離是d(步驟934)。此后,過程設(shè)置i=i+1(步驟936)并且回至步驟932以便判斷是否i=N+1。如果步驟932中i=N+1,則過程回至步驟904以便判斷用戶是否輸入了一個距離值。
因此本發(fā)明解決了現(xiàn)有技術(shù)中的缺點,它允許用戶沿著水平線、垂直線或斜線自動地將多個圖形對象排列和調(diào)整距離。選代地,用戶可以沿著其他形狀排列圖形對象。例如,圖形對象可以排列在一條曲線或圓周上。本領(lǐng)域普通技術(shù)人員知道這些對象可以擬合為一個形狀,例如拋物線或半圓,以及可以沿著這些形狀調(diào)整對象距離。
重要的是注意到,雖然在全功能數(shù)據(jù)處理系統(tǒng)的上下文中描述了本發(fā)明,但本領(lǐng)域普通技術(shù)人員知道能夠使用供處理器執(zhí)行用的指令的計算機可讀媒體的形式和不同形式傳送本發(fā)明的過程,以及無論實際上用于執(zhí)行傳送的信號載體的具體類型如何都可等同地應(yīng)用本發(fā)明。計算機可讀媒體的例子包括可記錄型媒體例如軟盤、硬盤驅(qū)動器、RAM和CD-ROM以及傳輸型媒體例如數(shù)字和模擬通信線路。
本發(fā)明的說明是為了闡述和描述的目的,而不是詳盡徹底的或者局限于所公開的本發(fā)明的形式。本領(lǐng)域普通技術(shù)人員知道可作出許多修改和變動。選擇和描述實施例是為了很好地解釋本發(fā)明的原理,實際應(yīng)用以及為了使其他本領(lǐng)域普通技術(shù)人員了解到本發(fā)明的具有不同修改的不同實施例是適合于所設(shè)想的具體用途的。
權(quán)利要求
1.一種用于在數(shù)據(jù)處理系統(tǒng)中將顯示器上的多個對象調(diào)整間距的方法,其中多個對象中的每一對相鄰對象具有一個距離,該方法包括以下由計算機實施的步驟接收對多個對象的選擇;沿著一條線排列所選多個對象;接收調(diào)整距離的請求;以及響應(yīng)于調(diào)整距離請求的接收而根據(jù)調(diào)整距離請求自動地沿著該線調(diào)整多個對象中每一對相鄰對象之間的距離。
2.權(quán)利要求1的方法,其中該線是一條水平線。
3.權(quán)利要求1的方法,其中該線是一條垂直線。
4.權(quán)利要求1的方法,其中該線是一條斜線。
5.權(quán)利要求1的方法,其中沿著一條線排列所選多個對象的步驟還包括以下步驟確定一個錨對象;確定該錨對象的中心坐標(biāo);確定該線為通過錨對象的中心坐標(biāo)的線;及調(diào)整該線上的其他對象中每個對象的位置。
6.權(quán)利要求5的方法,其中調(diào)整位于該線上的其他對象中每個對象的位置的步驟包括以下步驟確定其他對象中每個對象的中心坐標(biāo);及調(diào)整其他對象中每個對象的位置以使各中心坐標(biāo)都位于該線上。
7.權(quán)利要求1的方法,其中沿著一條線排列所選多個對象的步驟包括以下步驟確定每個對象的中心坐標(biāo);及為各對象的中心點擬合一條線性回歸線。
8.權(quán)利要求1的方法,其中調(diào)整距離請求是一個增加請求及自動地沿著該線調(diào)整多個對象中每一對相鄰對象之間的距離的步驟包括增加各距離。
9.權(quán)利要求1的方法,其中調(diào)整距離請求是一個減少請求及自動地沿著該線調(diào)整多個對象中每一對相鄰對象之間的距離的步驟包括減少各距離。
10.權(quán)利要求1的方法,其中調(diào)整距離請求包括一個距離值及自動地沿著該線調(diào)整多個對象中每一對相鄰對象之間的距離的步驟包括調(diào)整各對象的位置以使每一對相鄰對象之間的距離等于所述距離值。
11.權(quán)利要求1的方法,其中自動地沿著該線調(diào)整多個對象中每一對相鄰對象之間的距離的步驟包括調(diào)整各對象的位置以使各對相鄰對象之間的各距離彼此相等。
12.一種用于在數(shù)據(jù)處理系統(tǒng)中改變顯示器上的一組對象的表示的方法,其中該組對象中的每一對相鄰對象具有一個對象間距離,該方法包括監(jiān)視對于該組對象內(nèi)每一對相鄰對象之間的調(diào)整距離的請求;及響應(yīng)于該請求而自動地將該組對象重新定位以使對象間距離等于調(diào)整距離。
13.權(quán)利要求12的方法,還包括沿著一條線將多個對象排列;及其中重新定位步驟包括沿著該線將多個對象重新定位。
14.權(quán)利要求12的方法,其中調(diào)整距離是按1增加的對象間距離。
15.權(quán)利要求12的方法,其中調(diào)整距離是按1減少的對象間距離。
16.權(quán)利要求12的方法,其中調(diào)整距離是由用戶輸入的一個值。
17.一種用于將顯示器上表示的多個對象調(diào)整間距的數(shù)據(jù)處理系統(tǒng),其中多個對象中的每一對相鄰對象具有一個距離,該數(shù)據(jù)處理系統(tǒng)包括用于接收對多個對象的選擇的第一接收裝置;用于沿著一條線排列所選多個對象的排列裝置;用于接收調(diào)整距離請求的第二接收裝置;響應(yīng)于調(diào)整距離請求的接收而用于根據(jù)調(diào)整距離請求自動地沿著該線調(diào)整多個對象中每一對相鄰對象之間的距離的調(diào)整裝置。
18.權(quán)利要求17的設(shè)備,其中該線是一條水平線。
19.權(quán)利要求17的設(shè)備,其中該線是一條垂直線。
20.權(quán)利要求17的設(shè)備,其中該線是一條斜線。
21.權(quán)利要求17的設(shè)備,其中調(diào)整裝置還包括用于確定一個錨對象的第一確定裝置;用于確定該錨對象的中心坐標(biāo)的第二確定裝置;用于確定該線為通過錨對象的中心坐標(biāo)的線的第三確定裝置;及用于調(diào)整該線上的其他對象中每個對象的位置的第二調(diào)整裝置。
22.權(quán)利要求21的設(shè)備,其中第二調(diào)整裝置還包括用于確定其他對象中每個對象的中心坐標(biāo)的第四確定裝置;及用于調(diào)整其他對象中每個對象的位置以使各中心坐標(biāo)都位于該線上的第三調(diào)整裝置。
23.權(quán)利要求17的設(shè)備,其中排列裝置包括確定每個對象的中心坐標(biāo)的確定裝置;及用于為各對象的中心點擬合一條線性回歸線的擬合裝置。
24.權(quán)利要求17的設(shè)備,其中調(diào)整距離請求是一個增加請求及調(diào)整裝置包括用于增加各距離的裝置。
25.權(quán)利要求17的設(shè)備,其中調(diào)整距離請求是一個減少請求及調(diào)整裝置包括用于減少各距離的裝置。
26.權(quán)利要求17的設(shè)備,其中調(diào)整距離請求包括一個距離值及調(diào)整裝置包括用于調(diào)整各對象的位置以使每一對相鄰對象之間的距離等于所述距離值的裝置。
27.權(quán)利要求17的設(shè)備,其中調(diào)整裝置包括用于調(diào)整各對象的位置以使各對相鄰對象之間的距離彼此相等的裝置。
28.一種用于改變顯示器上的一組對象的表示的數(shù)據(jù)處理系統(tǒng),其中該組對象中的每一對相鄰對象具有一個對象間距離,該數(shù)據(jù)處理系統(tǒng)包括用于監(jiān)視對于該組對象內(nèi)每一對相鄰對象之間的調(diào)整距離的請求的監(jiān)視裝置;及響應(yīng)于該請求而用于自動地將該組對象重新定位以使對象間距離等于調(diào)整距離的重新定位裝置。
29.權(quán)利要求28的設(shè)備,還包括用于沿著一條線排列多個對象的排列裝置;及其中重新定位裝置包括用于沿著該線將多個對象重新定位的裝置。
30.權(quán)利要求28的設(shè)備,其中調(diào)整距離是按1增加的對象間距離。
31.權(quán)利要求28的設(shè)備,其中調(diào)整距離是按1減少的對象間距離。
32.權(quán)利要求28的設(shè)備,其中調(diào)整距離是由用戶輸入的一個值。
33.一種用于改變顯示器上的一組對象的表示的數(shù)據(jù)處理系統(tǒng),其中該組對象中的每一對相鄰對象具有一個對象間距離,該數(shù)據(jù)處理系統(tǒng)包括一個處理器;及一個電氣上連至所述處理器的存儲器,該存儲器具有存于其中的準備在所述處理器上運行以便完成以下步驟的程序監(jiān)視對于該組對象內(nèi)每一對相鄰對象之間的調(diào)整距離的請求;及響應(yīng)于該請求而自動地將該組對象重新定位以使對象間距離等于調(diào)整距離。
34.一種用于將顯示器上表示的多個對象調(diào)整間距的計算機可讀媒體上的計算機程序產(chǎn)品,其中多個對象中的每一對相鄰對象具有一個距離,該計算機程序產(chǎn)品包括用于接收對多個對象的選擇的指令裝置;用于沿著一條線排列所選多個對象的指令裝置;用于接收調(diào)整距離請求的指令裝置;及響應(yīng)于調(diào)整距離請求的接收而用于根據(jù)調(diào)整距離請求自動地沿著該線調(diào)整多個對象中每一對相鄰對象之間的距離的指令裝置。
全文摘要
一種使用軟件應(yīng)用程序調(diào)整圖形對象間距的方法和設(shè)備。在程序指令的作用下,數(shù)據(jù)處理系統(tǒng)對用戶要求將多個所選圖形對象調(diào)整距離的指令作出響應(yīng)。該系統(tǒng)排列各對象并且提示用戶指定調(diào)整距離。然后自動調(diào)整每一對相鄰對象的間距。使用本發(fā)明,用戶可以輸入大量圖形對象以及排列它們并且精確地設(shè)置它們彼此之間的位置。因此可以快速地和有效地建立和排列大量圖形對象而不需進行許多個別的測量。
文檔編號G06F17/24GK1325074SQ01119180
公開日2001年12月5日 申請日期2001年5月23日 優(yōu)先權(quán)日2000年5月24日
發(fā)明者克里斯蒂·J·里查德 申請人:國際商業(yè)機器公司