通過多點觸摸輸入執(zhí)行三維物體約束操作的系統(tǒng)和方法
【專利摘要】本文所述的是將無控件及無按鈕的多點觸摸界面用于三維物體約束操作的系統(tǒng)和方法。無控件的多點觸摸用戶界面可以將不同的多點觸摸手勢與不同的三維操作任務(wù)關(guān)聯(lián)起來,從而使用戶可以直接操作三維物體,而不需要操作控件、執(zhí)行模式切換或選擇不同的工具。通過使用同時指定變換約束、變換類型和變換幅度并對所關(guān)注的物體施加變換的單個觸摸動作,用戶交互可以被大大簡化。此外,基于軸線的約束操作還支持主動貼合和軸線轉(zhuǎn)移。通過主動貼合,用戶可以畫一條連接兩個三維物體的自由觸摸路徑以使這兩個物體貼合,避免了標(biāo)準(zhǔn)變換操作所需的繁瑣工作。軸線轉(zhuǎn)移則提供了一個簡單的方案來實現(xiàn)物體之間的相對變換操作,從而使一個物體可沿另一物體的預(yù)先定義的具體軸線進行變換。
【專利說明】通過多點觸摸輸入執(zhí)行三維物體約束操作的系統(tǒng)和方法
[0001]相關(guān)申請的交叉引用
[0002]本申請要求2011年10月27日提交的標(biāo)題為“Mult1-Touch Interfaces for3DObject Manipulation”的美國臨時專利申請N0.61/552,413的優(yōu)先權(quán),其整體通過引用并入于此。
【技術(shù)領(lǐng)域】
[0003]本公開一般地涉及三維(3D)物體的操作,具體地涉及能夠根據(jù)觸摸手勢使三維物體的操作任務(wù)變得容易的多點觸摸輸入設(shè)備。
【背景技術(shù)】
[0004]在工程、設(shè)計、娛樂等行業(yè)中,三維建模是重要的工具。通過三維建模,用戶可以在虛擬空間中創(chuàng)建、放置、縮放以及定向三維物體?,F(xiàn)有的三維建模解決方案一般受限于平面顯示器以及單點二維輸入設(shè)備(例如鼠標(biāo),手寫筆等)。由于這些限制,三維建模軟件包往往很難使用,它們依賴于一些小的控件以及一大組鍵盤快捷鍵或模式切換按鈕來實現(xiàn)復(fù)雜的操作。
[0005]許多新的數(shù)字設(shè)備都配備了觸摸板、觸摸屏或類似的輸入設(shè)備,這些輸入設(shè)備與基于鍵盤、鼠標(biāo)、和手寫筆的輸入設(shè)備具有極其不同的輸入屬性。由于輸入屬性如此不同,因此傳統(tǒng)的三維操作界面必須被重新設(shè)計,以便適應(yīng)觸感模式(tactile paradigm)。此外,由于觸摸設(shè)備的“胖手指”問題,即指尖接觸范圍比輸入分辨率大,因此標(biāo)準(zhǔn)界面所采用的小控件以及一大組模式切換按鈕在多點觸摸輸入設(shè)備上是難以操作的。
[0006]上述的傳統(tǒng)三維操作界面在觸摸輸入設(shè)備上的不足僅旨在提供現(xiàn)有技術(shù)的一些問題的概述,并非旨在詳盡無遺的描述。通過以下詳細(xì)的描述,現(xiàn)有技術(shù)的其它問題以及本文所述的多種非限制性實施例中的一些實施例的相應(yīng)優(yōu)勢變得更加清晰明了。
【發(fā)明內(nèi)容】
[0007]以下的概述提供了本文描述的一些方面的基本理解。此概述不是所公開的主題內(nèi)容的詳細(xì)描述。它并非旨在指出所公開的主題內(nèi)容的關(guān)鍵要素,也不旨在描述本主題公開的范圍。此概述僅扼要描述了所公開的主題內(nèi)容的一些構(gòu)思,更詳細(xì)的描述將在后文提出。
[0008]本文所描述的用戶界面可以直接將不同的多點觸摸手勢與不同的三維操作任務(wù)對應(yīng)起來。一般來說,這些用戶界面無需控件或者按鈕,取而代之的是采用少量的多點觸摸手勢。利用多點觸摸手勢而非控件,消除了傳統(tǒng)屏幕上的雜亂控件,同時實現(xiàn)了對操作約束(即,軸線或平面)以及模式(即,平移、旋轉(zhuǎn)或縮放)的簡單、流暢的控制。這避免了諸如傳統(tǒng)建模情形中的模式/工具切換之類的繁瑣的編輯步驟。
[0009]本文描述的用戶界面可以采用允許直接將多點觸摸手勢與不同三維操作任務(wù)/工作對應(yīng)的方法。通過這個方法,可以選擇關(guān)注的物體。然后,可以通過判斷至少兩個觸摸點的方向來選擇軸線。之后,可以通過判斷至少兩個觸摸點相對于已選中軸線的運動來確定對物體進行的變換模式(例如,平移、旋轉(zhuǎn)、縮放)以及變換的量(例如,位移、旋轉(zhuǎn)角度)。這樣,用戶可以利用基于單個多點觸摸手勢(一系列手指向下、移動、手指向上的觸摸動作)的剛性變換和縮放來操作三維環(huán)境中的三維物體,而無需借助于任何操作控件。由編輯物體定義的軸線、平面以及任意其它幾何元素或由用戶定義的任何約束可以被選為約束。還可以通過使用與手勢的觸摸路徑相關(guān)聯(lián)的位置和切線信息來貼合(snap)或連接三維物體。所選的約束也可以轉(zhuǎn)移到其它三維物體,使得關(guān)于與另一三維物體相關(guān)聯(lián)的約束來完成對這些物體的剛性變換和縮放。
[0010]以下的描述和附圖將詳細(xì)闡述所公開的主題的某些示例性方面。但是,這些方面僅指示了可以采用發(fā)明原理的多種方式中的一些方式。所公開的主題旨在包括所有這些以及其等同的方面。結(jié)合附圖,所公開的主題的其它優(yōu)勢以及顯著的特征將在以下對發(fā)明的詳細(xì)介紹中得到變得清晰。
【專利附圖】
【附圖說明】
[0011]參照以下附圖來描述本公開的非限制性和非窮舉性的實施例。其中除非另有規(guī)定,否則在各圖中相同的標(biāo)號始終表示相同的部分。
[0012]圖1是比較了傳統(tǒng)的基于控件的三維操作界面和本文所述的用于約束操作的無控件多點觸摸用戶界面的示意圖。
[0013]圖2是二種軸線約束變換(平移、縮放和旋轉(zhuǎn))的不意圖。
[0014]圖3是三維約束操作的方法的示意性處理流程圖。
[0015]圖4是在多點觸摸設(shè)備上便于三維約束操作的系統(tǒng)的示意性系統(tǒng)框圖。
[0016]圖5是基于軸線的變換操作的多點觸摸手勢的示意圖。
[0017]圖5b是可以用于基于軸線的變換操作的不同軸線集的示例的示意圖。
[0018]圖6是用于平面約束操作的多點觸摸手勢的示意圖。
[0019]圖7是用于貼合操作的手勢的示意圖。
[0020]圖8是用于軸線和基點借用的多點觸摸手勢的示意圖。
[0021]圖9是可以實現(xiàn)本文所述的各個實施例的計算環(huán)境的示例。
[0022]圖10是可以實現(xiàn)本文所述的各個實施例的計算機網(wǎng)絡(luò)的示例。
【具體實施方式】
[0023]在下面的描述中,為了提供對各實施例的透徹理解,對許多具體細(xì)節(jié)進行了闡述。然而相關(guān)領(lǐng)域的技術(shù)人員會認(rèn)識到,本文描述的技術(shù)可以在沒有其中的一項或多項具體細(xì)節(jié)的情況下,或者在使用其它方法、組件、材料等的情況下來實踐。在其他實例中,眾所周知的結(jié)構(gòu)、材料、或操作并沒有被詳細(xì)示出或描述,以避免模糊所公開的主題的某些方面。
[0024]本文描述了 一種三維建模方案,其針對三維空間內(nèi)的三維物體的約束性操作,提供了豐富、直觀的控制,并且無需來自小控件、按鈕等的輸入。利用此建模方案,用戶能夠通過對任意尺寸的多點觸摸輸入設(shè)備執(zhí)行簡單的手勢輸入來操作三維物體。多點觸摸輸入設(shè)備(例如觸摸屏、觸摸板以及類似設(shè)備)如今已被廣泛用于數(shù)碼設(shè)備上。本文所描述的建模方案不使用小控件、鍵盤快捷鍵或模式切換按鈕,取而代之的是使用單一的手勢輸入,該手勢輸入使得三維模型的軸線或平面約束平移、旋轉(zhuǎn)和縮放變得容易,提供了對三維物體的流暢、直觀和情境感知的操作以及簡單的主動貼合和軸線轉(zhuǎn)移功能。
[0025]在整個說明書中引用“多種實施例”、“一個實施例”、或“實施例”意味著結(jié)合實施例描述的特定的特征、結(jié)構(gòu)、或特性包括在至少一個實施例內(nèi)。因此,在本說明書中的各個位置出現(xiàn)的短語“在一個實施例中”、或“在實施例中”不一定全都指代同一實施例。此外,可以以任何合適的方式組合一個或多個實施例中的特定的特征、結(jié)構(gòu)、或特性。
[0026]在本文中,詞語“示例性”和“示例”用于表示用作示例、實例、或例證。為避免疑義,本文所述的主題不受限于這些示例。另外,本文中描述為“示例性”的任何方面或設(shè)計不一定都被理解為優(yōu)于或勝于其它方面或設(shè)計,也并非意味著排除了本領(lǐng)域普通技術(shù)人員所公知的等同結(jié)構(gòu)和技術(shù)。而且,對于在詳細(xì)的說明書或權(quán)利要求中使用的術(shù)語“包含”、“具有”、“含有”以及其它類似詞語,這些術(shù)語意為包含性的,與作為開放性過渡詞的術(shù)語“包括”類似,不排除任何另外的或其它的元素。
[0027]為了簡化說明,本文中描述為“方法”的任何對象均被描繪或描述為一系列行為。系統(tǒng)、設(shè)備或裝置可以執(zhí)行這些方法(例如,借助于處理器)以執(zhí)行這些行為。系統(tǒng)、設(shè)備或裝置可以具有存儲在存儲器中的“組件”,其有助于各種方法、元件、行為、工具等的執(zhí)行。
[0028]要理解并認(rèn)識到的是,各個實施例不受限于所示的行為和/或行為的順序。例如,各行為可以按各種順序和/或同時發(fā)生,并且可以與本文中未呈現(xiàn)或描述的其它行為一起發(fā)生。而且,實現(xiàn)本文所述的組件、方法或算法并非需要所有示出的行為。此外,本領(lǐng)域技術(shù)人員將理解并認(rèn)識到,所述方法還可以選擇性地通過狀態(tài)圖或事件被表示為一系列相關(guān)的狀態(tài)。所述組件和方法可以存儲在存儲器或其它非易失性計算機可讀存儲介質(zhì)中,并且由處理器執(zhí)行,從而便于實現(xiàn)附圖中示出的行為。
[0029]現(xiàn)在參照圖1,其中展示的是傳統(tǒng)的基于控件的三維操作界面102和本文所述的無控件的三維操作界面104之間的示意性比較100。傳統(tǒng)的三維操作界面102和無控件的多點觸摸三維操作界面104均可以方便對三維物體的約束操作。
[0030]傳統(tǒng)的三維操作界面102采用變換控件(transformation widget)來幫助對三維物體的約束操作。在許多三維應(yīng)用程序中,這些約束操作常用來進行精細(xì)的操作。對于變換控件,其定義特征是能夠提供單一的交互點或句柄(handle),以實現(xiàn)對三維物體的直接操作。變換控件往往包含多個用于不同操作目的的可視的句柄(例如,元件106),其要求每個單擊精確地落在對應(yīng)的句柄內(nèi)。由于變換控件主要是針對基于鼠標(biāo)的系統(tǒng)設(shè)計的,因此對于多點觸摸界面,它們并不容易使用。
[0031]在多點觸摸設(shè)備上,例如由于指尖接觸范圍的輸入分辨率(“胖手指”問題)和手指遮擋等問題,將標(biāo)準(zhǔn)的變換控件直接改為與多點觸摸輸入設(shè)備一起采用的觸感模式并不能取得很好的效果。盡管針對觸摸屏來重新設(shè)計控件的外觀可以減輕胖手指問題的影響,但是這些重新設(shè)計的控件依然會采用很多句柄,這些句柄在幾乎每次觸摸時均要求受到視覺上的關(guān)注,因為每次點擊都需要精確且直接地點在控件的正確元件上。
[0032]無控件的多點觸摸三維操作界面的設(shè)計在很大程度上是與傳統(tǒng)三維操作界面102中的傳統(tǒng)變換控件的設(shè)計無關(guān)的,這消除了用戶界面里所有可視控件,從而避免了繁瑣的控件操作。作為替換,利用無控件的多點觸摸三維操作界面104,在多點觸摸輸入設(shè)備上通過不同的多點觸摸手勢可以實現(xiàn)不同的功能。無控件的多點觸摸三維操作界面104利用了候選軸線,這些軸線僅用于可視化,而不是用于直接操作。這種設(shè)計可以很大程度上減少視覺上的混亂,同時能夠容許不精確的觸摸輸入。
[0033]由于多點觸摸輸入(手勢)包含豐富的方向(多個觸摸點的相對位置)和變換(觸摸點的運動軌跡)的信息,它們很滿足要求多維度輸入的三維操作的需要。無控件的多點觸摸三維操作用戶界面104引入了一小組易用的多點觸摸手勢來替代傳統(tǒng)的控件句柄,這些觸摸手勢受限于以下準(zhǔn)則:(I)為了避免使用需要精確操作的控件,不應(yīng)提供任何用于直接操作的可視句柄;(2)為了使手勢更加有效,多點觸摸手勢的識別必須與刻度和位置無關(guān);以及(3)提供的功能可以涉及操作約束(例如,軸線或平面)或模式(例如,平移、旋轉(zhuǎn)、或縮放(參見圖2,平移202、縮放204、旋轉(zhuǎn)206))。此外,物體間的相對操作包括貼合和借用另一個物體的軸線,可以通過直觀的觸摸手勢來實現(xiàn)。
[0034]大部分現(xiàn)有的三維建模方案(例如傳統(tǒng)的三維操作界面102)通常支持三維物體的兩種三維操作機制:無約束操作和約束操作。無約束操作允許沿任意軸線的三維變換,并且通常對粗略的操作有用(例如用于三維定位操作的各種虛擬軌跡球)。而約束操作支持精細(xì)的三維操作。
[0035]利用多點觸摸輸入,現(xiàn)有的多點觸摸技術(shù)能夠支持多個自由度(DOF)的同時操作,進而實現(xiàn)無約束操作。然而,這些現(xiàn)有的多點觸摸技術(shù)并不適用于約束操作以及精細(xì)的
三維操作。
[0036]約束的三維操作包括三個基本的行為,如圖3所示。在單元302處,可以選擇約束。此約束可以是軸線、平面或由編輯物體所定義的其他幾何元素或由用戶定義的任何約束。在單元304處,可以指定變換模式。如圖2所示,變換模式可以包括平移、旋轉(zhuǎn)和縮放。在單元306處,變 換操作可以基于約束、變換模式和鼠標(biāo)/觸摸的移動量而發(fā)生。變換的幅度可以在變換操作306的過程中例如通過鼠標(biāo)和/或觸摸點的移動量來確定。在傳統(tǒng)的三維操作界面(如工具102)中,這些行為都是通過控件來實現(xiàn)的。而在無控件的多點觸摸三維操作界面中,這些行為可通過單一的手勢順暢的執(zhí)行,而無需控件的幫助。
[0037]傳統(tǒng)三維操作工具102可以通過三維變換控件來進行約束變換。盡管這些變換控件的外觀設(shè)計和實現(xiàn)細(xì)節(jié)可以各有不同,但它們的設(shè)計思想和功能大致相同:(I)利用三軸標(biāo)準(zhǔn)框架作為基本組件,用于各軸線約束操作(“約束”)的獨立控制;以及(2)對可同時進行顯示的平移、旋轉(zhuǎn)和縮放的多自由度控制(“00?控制”)。一個成功的操作依賴于精確的約束選擇和自由度控制
[0038]傳統(tǒng)的三維變換控件主要設(shè)計為與鍵盤和單點式設(shè)備(如鼠標(biāo)或手寫筆)一起使用,并且依賴于大量的鍵盤快捷鍵或模式切換按鈕。由于多點觸摸輸入設(shè)備跟傳統(tǒng)的基于鍵盤、鼠標(biāo)和手寫筆的輸入系統(tǒng)在輸入特性上有很大的不同,因此傳統(tǒng)的三維操作工具102需要被重新設(shè)計,以適應(yīng)觸感模式?,F(xiàn)有的解決方案主要嘗試通過重新設(shè)計控件的形式和配置來解決如何使變換控件更容易地被指尖選中和操作的問題。然后,和標(biāo)準(zhǔn)的變換控件一樣,重新設(shè)計的控件直接將不同的變換工具與不同的控件組件相關(guān)聯(lián),因此在調(diào)用適當(dāng)?shù)墓ぞ邥r,需要進行小心的觸摸定位。而無控件多點觸摸三維操作用戶界面去除了所有的控件,僅倚靠手勢輸入。
[0039]無控件多點觸摸三維操作界面所使用的手勢受限于以下約束。為了使手勢易于掌握,它們的使用應(yīng)足夠簡單和直觀。手勢的數(shù)量不應(yīng)太多。此外,大多數(shù)操作應(yīng)能夠通過單手手勢來實現(xiàn),這是因為許多時候另一只手需要做其他的事情(例如,握住多點觸摸輸入設(shè)備)。為了使標(biāo)準(zhǔn)變換控件所提供的所有可用的交互都能被一小組簡單的手勢涵蓋,應(yīng)允許手勢的重復(fù)使用,并且它們可以被解釋為情境感知的操作。
[0040]現(xiàn)參照圖4,圖中展示的系統(tǒng)400有助于用于三維操作的無控件多點觸摸三維操作用戶界面。該系統(tǒng)可以包括選擇組件402,它能夠接收以點擊手勢對要操作的關(guān)注物體的選中。點擊手勢可以是單對的手指放下和手指提起的觸摸動作。
[0041]該系統(tǒng)還可以包括約束組件404,其便于基于觸摸屏幕的兩個手指的方向,從所選物體的候選約束中選擇一個約束(參見圖5)。約束選擇可以確定執(zhí)行變換將參照的軸線或平面。變換模式可以是平移、旋轉(zhuǎn)或縮放。軸線的選擇可以通過兩個觸摸點的方向來判斷。兩個觸摸點的方向也可以選擇平面約束以在平面內(nèi)執(zhí)行平移/縮放。由編輯物體所定義的任何其它幾何元素或由用戶定義的任何約束均可以被選中作為約束。對于使一個物體貼合另外一個物體的貼合平面約束,可以根據(jù)觸摸路徑兩端的位置和切線來選擇。
[0042]該系統(tǒng)還可以包括模式識別組件406,其可以基于兩個觸摸點相對于約束組件404所選中的約束的移動來確定變換模式。該系統(tǒng)可以進一步包括變換組件408,其根據(jù)兩個接觸點的運動(例如手指的移動量)來確定變換量,之后根據(jù)所識別的變換模式和變換量來進行變換。
[0043]圖5是用于軸線約束變換操作的多點觸摸手勢的示意圖。在單元502中,可以選擇用于操作的物體。一旦選擇了用于操作的物體,可以顯示其預(yù)設(shè)的軸線集合。在單元504中,用戶可以基于兩個觸摸點(本例中的圓圈)所定義的方向來選擇其感興趣的軸線(由較粗的線顯示)。軸線的選擇可以由兩個觸摸點的初始方向來確定,而變換模式可以由兩個觸摸點相對于所選軸線的后續(xù)運動來確定。因此,單個多點觸摸動作(例如,手指放下、移動和手指提起的一系列觸摸移動)足以用來確定相對于期望軸線進行的期望的變換(平移、旋轉(zhuǎn)或縮放)。此類動作并不需要用于直接操作的任何復(fù)雜的變換控件。候選軸線是為了視覺輔助而提供,而不是用于直接操作。
[0044]和標(biāo)準(zhǔn)的變換控件一樣,對于選定為編輯對象的物體,可以保持一組預(yù)設(shè)的候選軸線。這些候選軸線可以利用簡單的方法(例如,和物體方向一致的包圍盒(object-oriented bounding box)、面向法向和主曲率方向(face normal and principalcurvature directions)等)來獲得,或者利用更加復(fù)雜的形狀分析(例如,反射對稱軸、垂直方向等)來獲得。通過將每條候選軸線向視平面進行投影,可以將每條軸與二維線對應(yīng)起來。因此,使用兩點觸摸足以指定感興趣的軸線:如果一條候選軸線投影后的方向與兩個觸摸點位置所確定的方向最接近,那么這條軸線將用作用于操作的軸線約束(如圖中突出顯示的軸線)。候選軸線只是為了可視化需要而被顯示,并不是用于直接操作的可觸摸句柄。兩個手指可以放在屏幕上的任何位置,使所做的手勢與具體位置和刻度無關(guān)。對于幾乎平行于視線方向的軸線,它們將不會被選擇,這是因為沿這些所選軸線進行平移或縮放一般來說是很難預(yù)測結(jié)果的。
[0045]一旦感興趣的軸線被選中,則可以根據(jù)兩個手指相對于所選軸線的移動(沿著軸線或垂直軸線)來確定變換模式(例如平移、旋轉(zhuǎn)或縮放),而變換的量可以根據(jù)位移來計算。指定變換模式和進行變換的整個過程是順暢的,僅涉及單個多點觸摸手勢。
[0046]在單元506中,兩個手指沿著所選軸線的平移手勢可以對應(yīng)于軸線約束平移。在單元508中,軸線約束旋轉(zhuǎn)可以通過垂直于所選軸線的兩指平移手勢來實現(xiàn)。其中平移和旋轉(zhuǎn)的量均可以根據(jù)屏幕上兩個接觸點的平均位移來進行計算。這種情境感知的手勢是直觀易用的,因為它類似于標(biāo)準(zhǔn)變換控件的運動模式(即,根據(jù)明確指定的軸線和操作模式,沿著軸線移動來實現(xiàn)平移和垂直軸線移動來實現(xiàn)旋轉(zhuǎn))。
[0047]在單元510中,兩個手指沿著軸線的捏合(pinch)可以對應(yīng)于軸線約束縮放。兩個手指可以是捏合在一起或分開。縮放的量可由兩個接觸點的當(dāng)前距離和初始距離之間的比例來確定。
[0048]可以根據(jù)兩個接觸點的初始方向和相對于所選軸線的后續(xù)移動來容易地識別手勢。在接觸點的位移大于給定的閾值時(例如任何大于手部簡單抖動的位移),手勢才會被識別。一旦某個手勢被識別,相應(yīng)的變換模式將會被激活,并保持不變,直到手指不再接觸多點觸摸輸入設(shè)備為止。通過采用幅度過濾的想法,有可能能夠以單一的觸摸動作在不同的變換模式之間進行切換。
[0049]操作可受世界空間的軸線、屏幕空間的軸線以及類似的軸線的約束。如圖5b所示,各組軸線可以以任何使它們可區(qū)分的方法來顯示,例如使用不同的顏色(例如,藍色為物體空間、紅色為世界空間、綠色為屏幕空間)。這些軸線都穿過所選取物體的形心(centooid),這樣,它們的相對投影方向(角度差)是即時可見的,如單元512所示。
[0050]如圖6所示,基于單軸線的變換不是約束操作的唯一類型。平面約束操作是另外一個例子。平面約束允許在給定的三維平面內(nèi)進行物體操作,這可以通過選擇垂直于平面的軸線來指定。為了與軸線選擇模式進行區(qū)分,平面選擇模式可以采用不同的手勢來指定,比如采用二指點擊(例如,兩個手指快速觸摸和提起)手勢。在單元602中,可以顯示半透明平面來顯現(xiàn)所選平面約束。
[0051]平面約束操作可以包括平面上的平移和統(tǒng)一縮放。平面約束可以通過沿平面法線方向(加粗的線)的兩指點擊602 (如作為示例的圓圈所示)來選擇。類似于單軸線平移,在平面上的平移可以通過兩指的平移(未示出)來執(zhí)行。手指的運動將被投影到平面上,并沿著平面上的兩個軸線進行分解,以確定相對于各軸線的平移量。平面604上的統(tǒng)一縮放(沿平面法線方向沒有縮放)可以通過兩指捏合來實現(xiàn),縮放的量由兩個接觸點之間的距離的變化來確定。物體的縮放相對于平面是統(tǒng)一的。注意,在平面上旋轉(zhuǎn)是多余的,因為它相當(dāng)于沿平面法線進行旋轉(zhuǎn)。
[0052]理論上來說,軸線約束操作和平面約束操作足以構(gòu)成任何三維剛性變換。然而,所有的剛性變換總是被限制在固定于所操作的物體處的軸線或平面上。對于多個物體(例如,物體組合)的操作,可以利用交互技術(shù),該技術(shù)可以采用來自其他物體的約束,因此可以支持相對于任何任意物體的操作。
[0053]一個這樣的交互技術(shù)就是貼合。貼合提供了有效的方法來實現(xiàn)物體之間的精確關(guān)系。貼合可以主動或被動地實現(xiàn)。被動貼合依賴于引導(dǎo)線或引導(dǎo)面的自動檢測,因此,通常只能用于附近的物體。主動貼合通常通過用戶繪制的連接兩個物體的路徑來實現(xiàn),因此物體可以彼此遠離。兩個物體會自動聯(lián)系在一起(glue),使它們的位置和/或方向是一致的。
[0054]考慮到觸摸交互從本質(zhì)上來說是不精確的,因此對應(yīng)于貼合采用了一個新的、主要基于運動路徑的形狀而不是觸摸點的精確位置的手勢。這些手勢如圖7所示。曲線(觸摸路徑)兩端處的切線方向決定了當(dāng)源物體被變換并貼合于目標(biāo)物體時哪兩條軸線將被對齊(例如,單元704展示了基于單元702的曲線的貼合;單元708展示了基于單元706的曲線的貼合)。對于貼合,使用預(yù)先定義的候選軸線的集合來定義貼合代理(這也適用于光滑表面)。對于每個軸線,一對平行的、同時垂直于軸線的邊界平面可以被定義為候選貼合平面。
[0055]觸摸路徑的起始點和結(jié)束點處的切線方向分別被用以自動確定所選物體和目標(biāo)物體處的貼合平面。這種技術(shù)不需要指定觸摸路徑的精確位置,而且非常靈活,僅依賴于所繪制曲線的兩端處的切線方向。即使當(dāng)前的取景視野中看不到貼合面(例如,702中的目標(biāo)貼合平面),物體貼合仍然被允許施行,這樣大大減少了控制取景(camera)的工作量。
[0056]變換所選物體使得貼合平面的中線與法線對齊。源物體還有一個自由度:繞貼合平面的對齊的法線進行旋轉(zhuǎn)。一個簡單的策略可以用來決定最佳旋轉(zhuǎn),使得盡量多的初始可視面保持可視。具體來講,是通過計算源物體的每個軸線和視線方向的內(nèi)積,并選擇一個對齊方向,使得貼合之前和之后的內(nèi)積差異的總和最小。注意貼合后,用戶有調(diào)整該旋轉(zhuǎn)角度的自由??偟膩碚f,貼合操作避免了其它繁瑣的物體操作,提供了一個方便的用于多個物體操作的界面。
[0057]設(shè)定任意的軸線或樞軸通常是繁瑣和耗時的。然而,在很多情況下,一個物體的期望操作約束存在于另一個場景物體的候選約束中。本文所述的建模系統(tǒng)支持簡單交互,以借用另一個物體的軸線和中心進行操作,從而允許對一個物體進行相對于任何物體的相對操作。
[0058]使用另一個物體的軸線來操作所選物體時,用戶只需通過單指長按來標(biāo)記提供所需軸線的物體。一組新的軸線將會以所選物體為中心來顯示,然后用戶可以相對于這組新的軸線來操作所選物體。重新單指長按提供軸線的物體會切換到另一個模式,在此模式下,提供軸線的物體將同時提供軸線組和中心用于操作。由于正在使用提供軸線和中心的物體的中心,因此借用的軸線仍然會繪制在提供這些軸線以及中心的物體上。
[0059]圖8中所示為軸線和中心借用的一個例子。圖8中,后腿相對于身體的中心和軸線旋轉(zhuǎn)。注意,這類似于其他交互式操作系統(tǒng)中的樞軸物體,但是這個系統(tǒng)允許任何物體來提供軸或中心,并且沒有明顯地區(qū)分可編輯物體和樞軸物體。
[0060]如圖8所示,腿部被選中用于操作(802)。通過單指長按身體,身體的軸線組可以被借來用于操作腿部(804)。兩指觸摸選中軸線約束(806),然后前腳被復(fù)制并被沿著所選中的軸線平移(808)。另一個單指長按切換到另一個模式,在這個模式下,身體的軸線組和中心同時被借用(810)。因為提供軸線和中心的物體的中心正在被使用,因此借用的軸線仍然會繪制在提供軸線和中心的物體上。后腿相對于借用的中心和軸線旋轉(zhuǎn)(812)。
[0061]可以使用其他的操作來支持本文所述的三維建模技術(shù)的操作。這些支持操作和前文所介紹的操作組成了用于基本三維建模和組成的完整系統(tǒng)。以下的一些操作依賴于實時的手指和手掌注冊技術(shù),每當(dāng)三個或更多個觸摸點被檢測到時,該技術(shù)可以自動判斷用戶的哪一只手正在觸摸、以及哪個觸摸點屬于哪個手指。
[0062]手指和手掌注冊可以包括檢測至少與拇指、食指和中指對應(yīng)的至少三個接觸點以及檢測是左手還是右手。之后,這至少三個接觸點會與一個參考點相連接,該參考點是基于接觸點計算出的,然后利用參考點為頂點來計算接觸點之間的跨度角(spanning angle)??梢曰诳缍冉莵泶_定拇指(拇指對應(yīng)于最大的跨度角)。拇指旁邊的手指可以被標(biāo)記為食指。根據(jù)食指是出現(xiàn)在拇指的順時針方向還是逆時針方向,可以確定正在觸摸的是右手還是左手。根據(jù)右手和左手手指的順時針或逆時針方向,可以做出剩余的接觸點與中指、無名指和小指的關(guān)聯(lián)。手指注冊信息可以被用來將進一步的手勢與其他的操作相關(guān)聯(lián)。
[0063]其中一個操作是取景控制。所采用的是透視取景。對于取景軌跡,可以使用一個手指的移動(從空白處開始)來觸發(fā)虛擬軌跡球界面。可分別使用五個手指的滑動和捏合手勢來實現(xiàn)平移和縮放。
[0064]另一個操作是物體選擇。對于物體的選擇和取消選擇,可通過在物體上單指點擊來實現(xiàn)。單指雙擊一個物體將把點擊的物體置于屏幕空間的中心。對于選擇多個物體,可以通過雙指點擊另一物體來把它添加到已選集合中。在空白處點擊可以取消選擇所有物體。
[0065]另一個操作是統(tǒng)一縮放。給定一個所關(guān)注的物體(即被選中的物體),例如左手五指捏合可以被識別為統(tǒng)一縮放的操作。
[0066]另一個操作是屏幕空間旋轉(zhuǎn)。當(dāng)屏幕空間的任何軸線被選中時,兩個手指的旋轉(zhuǎn)將被識別為屏幕空間旋轉(zhuǎn)的操作,物體將會沿著視線的方向旋轉(zhuǎn)。
[0067]另一種操作是物體復(fù)制。復(fù)制操作可以通過三指的平移來激活。根據(jù)被選中的是一個還是兩個物體,所復(fù)制的物體經(jīng)過軸線約束平移(由三個手指的移動來確定平移的軸線)或基于兩個所選物體之間的相對變換來被直接變換。
[0068]上述系統(tǒng)和方法可以通過軟件、硬件、或它們的組合來實現(xiàn)。圖9和圖10提供了上述裝置、用戶界面和方法的硬件關(guān)聯(lián)。圖9示出了可結(jié)合上述裝置、用戶界面和方法而使用的計算環(huán)境900。圖10示出了可方便上述系統(tǒng)和方法而使用的計算網(wǎng)絡(luò)1000。應(yīng)當(dāng)理解,也可以利用人工智能來實現(xiàn)本文所描述的系統(tǒng)和方法。
[0069]現(xiàn)在參照圖9,圖9示出了合適的計算系統(tǒng)環(huán)境900的一個例子,其中可以實現(xiàn)一個或多個實施例。計算系統(tǒng)環(huán)境900僅僅是一個合適的計算環(huán)境的例子,并非旨在對任何實施例的使用或功能的范圍提出任何限制。計算環(huán)境900也不應(yīng)解釋為具有與示例性操作環(huán)境900中所示的任何一個組件或各組件的組合相關(guān)的任何依賴性或要求。
[0070]參照圖9,計算系統(tǒng)環(huán)境900被示為手持式計算機910。然而,計算機不必為手持式計算機。計算機只需要能夠與多點觸摸輸入設(shè)備交互和/或接收多點觸摸輸入即可。多點觸摸輸入設(shè)備也不必是手持式的。然而,計算系統(tǒng)環(huán)境900可以是具有執(zhí)行本文所述方法的處理器和多點觸摸顯示器的任何其它計算裝置,如臺式計算機、膝上型計算機、移動電話、移動互聯(lián)網(wǎng)設(shè)備、平板電腦等等。手持式計算機910的組件可包括(但不限于)處理單兀920、系統(tǒng)存儲器930和系統(tǒng)總線921,系統(tǒng)總線921將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦接到處理單元920。例如,本文所述的方法可存儲在系統(tǒng)存儲器930中,并由處理單元920執(zhí)行。
[0071]手持式計算機910也可以包括包含有形計算機可讀存儲介質(zhì)在內(nèi)的各種計算機可讀介質(zhì),并且可以是可由計算機910訪問的任何可用介質(zhì)。系統(tǒng)存儲器930可以包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì),例如,只讀存儲器(ROM)和/或隨機存取存儲器(RAM)。作為示例,而不是限制,存儲器930還可以包括操作系統(tǒng)、應(yīng)用程序、其它程序模塊和程序數(shù)據(jù)。
[0072]用戶可以通過輸入設(shè)備940將命令和信息輸入到計算機910,例如通過對多點觸摸輸入設(shè)備執(zhí)行的手勢來輸入命令。顯示器或其它類型的顯示設(shè)備也可以經(jīng)由諸如輸出接口 950之類的接口連接到系統(tǒng)總線921。[0073]計算機910可以利用與一個或多個諸如遠程計算機970之類的遠程計算機的邏輯連接來工作在聯(lián)網(wǎng)或分布式環(huán)境中。遠程計算機970可以是個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對端設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點、或任何其他遠程媒體消費或傳輸裝置,并且遠程計算機970可以包括任何或所有上述與計算機910相關(guān)的元件。圖9所示的邏輯連接包括諸如局域網(wǎng)絡(luò)(LAN)或廣域網(wǎng)(WAN)之類的網(wǎng)絡(luò)971,但是也可以包括其它網(wǎng)絡(luò)/總線。這樣的網(wǎng)絡(luò)環(huán)境常見于家庭、辦公室、企業(yè)范圍內(nèi)的計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和互聯(lián)網(wǎng)。
[0074]現(xiàn)在參照圖10,圖10示出了示例性的聯(lián)網(wǎng)或分布式計算環(huán)境1000的示意圖。圖10的手持式計算機可以運行在圖10的網(wǎng)絡(luò)中。分布式計算環(huán)境包括計算對象1010、1012等和計算對象或設(shè)備1020、1022、1024、1026、1028等,其可以包括由應(yīng)用程序1030、1032、1034、1036、1038表示的程序、方法、數(shù)據(jù)存儲、可編程邏輯等??梢岳斫?,對象1010、1012等和計算對象或設(shè)備1020、1022、1024、1026、1028等可以包括不同的設(shè)備,如遙控器、個人數(shù)字助理(PDA)、音頻/視頻設(shè)備、移動電話、MP3播放器、筆記本計算機等。
[0075]每個對象1010、1012等和計算對象或設(shè)備1020、1022、1024、1026、1028等可以與一個或多個其他對象1010、1012等和計算對象或設(shè)備1020、1022、1024、1026、1028等通過通信網(wǎng)絡(luò)1040直接或間接地通信。雖然在圖10中示為單個單元,但網(wǎng)絡(luò)1040可以包括為圖10的系統(tǒng)提供服務(wù)的其它計算對象和計算設(shè)備,和/或可以代表未示出的多個互連網(wǎng)絡(luò)。每個對象1010、1012等或1020、1022、1024、1026、1028等也可以包含諸如應(yīng)用程序1030、1032、1034、1036、1038之類的可利用API的應(yīng)用程序、或適合與根據(jù)各實施例提供的延遲交互模型進行通信或適合于實現(xiàn)根據(jù)各實施例提供的延遲交互模型的其他對象、軟件、固件和/或硬件。
[0076]有很多種支持分布式計算環(huán)境的系統(tǒng)、組件和網(wǎng)絡(luò)配置。例如計算系統(tǒng)可以通過有線或無線系統(tǒng)、通過本地網(wǎng)絡(luò)或廣泛分布的網(wǎng)絡(luò)連接在一起。盡管任何網(wǎng)絡(luò)基礎(chǔ)設(shè)施均可以用于各實施例中描述的技術(shù)所附帶的示例性通信,但是目前,很多網(wǎng)絡(luò)耦接到互聯(lián)網(wǎng)上,互聯(lián)網(wǎng)為廣泛分布的計算提供了基礎(chǔ)設(shè)施并且包括許多不同的網(wǎng)絡(luò)。
[0077]作為進一步的非限制性的例子,本文所述的各種實施例適用于任何手持式、便攜式和其它計算設(shè)備,并且所有類型的計算對象擬用于本文所述的各種實施例,即,用于設(shè)備可以請求基于指向的服務(wù)的任何地方。因此,以下圖10中描述的通用遠程計算機只是一個例子,本主題公開的實施例可以通過具有網(wǎng)絡(luò)/總線互操作性和交互作用的任何客戶端來實現(xiàn)。
[0078]雖然不是必需的,但是任何實施例都可以部分地通過操作系統(tǒng)來實現(xiàn)從而被設(shè)備或?qū)ο蟮姆?wù)開發(fā)人員使用,和/或包含在與可操作組件一起操作的應(yīng)用軟件內(nèi)??梢栽谥T如程序模塊之類的由一個或多個計算機(例如,客戶端工作站、服務(wù)器或其它設(shè)備)執(zhí)行的計算機可執(zhí)行指令的一般意義下來描述軟件。本領(lǐng)域技術(shù)人員將會理解,可以利用各種計算機系統(tǒng)配置和協(xié)議來實踐網(wǎng)絡(luò)交互。
[0079]以上對示出實施例的描述(包括摘要中描述的內(nèi)容)并非旨在窮舉或?qū)⑺_的實施例限制為所公開的精確形式。雖然為了說明的目的在本公開中描述了特定的實施例和示例,但本領(lǐng)域技術(shù)人員可以認(rèn)識到,可以進行各種修改,這些修改均被認(rèn)為是在所述實施例和示例的范圍內(nèi)。
[0080]在這方面,盡管已結(jié)合適用的各種實施例和相應(yīng)的附圖描述了公開的主題,但要理解的是,還可使用其它類似的實施例,或者在不偏離所公開的主題的情況下對所述實施例進行修改和添加來執(zhí)行所公開的主題的相同、類似、可選、或替代功能。因此,所公開的主題不應(yīng)限制于本文所述的任何單個實施例,而應(yīng)解釋為根據(jù)所附權(quán)利要求的廣度和范圍。
【權(quán)利要求】
1.一種方法,包括: 利用第一觸摸手勢在多點觸摸顯示設(shè)備上選擇關(guān)注的三維物體; 基于涉及至少兩個觸摸點的第二觸摸手勢的方向在所述多點觸摸顯示設(shè)備上選擇用來操作所關(guān)注的三維物體的約束; 基于所述第二觸摸手勢的觸摸點的運動信息來判斷操作類型; 基于所述第二觸摸手勢的觸摸點的運動信息來設(shè)置約束操作的幅度;以及 以所述幅度來對所關(guān)注的三維物體進行約束操作。
2.根據(jù)權(quán)利要求1所述的方法,其中選擇約束操作的步驟進一步包括選擇基于軸線的操作。
3.根據(jù)權(quán)利要求2所述的方法,其中選擇基于軸線的操作的步驟進一步包括: 根據(jù)所述第二觸摸手勢的觸摸點的方向來選擇軸線約束;以及 根據(jù)所述第二觸摸手勢的觸摸點的運動信息來確定操作類型,其中所述操作類型包括平移、旋轉(zhuǎn)或縮放。
4.根據(jù)權(quán)利要求1所述的方法,其中選擇約束操作的步驟進一步包括選擇平面約束操作。
5.根據(jù)權(quán)利要求4所述的方法,其中選擇平面約束操作的的步驟進一步包括: 根據(jù)所述第二觸摸手勢的觸摸點的方向來選擇平面約束;以及` 根據(jù)所述第二觸摸手勢的運動信息來確定操作類型,其中所述操作類型包括在所述平面內(nèi)的平移或統(tǒng)一縮放。
6.根據(jù)權(quán)利要求1所述的方法,其中選擇的步驟還包括選擇軸線轉(zhuǎn)移來關(guān)于第二物體操作所關(guān)注的三維物體。
7.根據(jù)權(quán)利要求1所述的方法,其中選擇約束操作的步驟進一步包括利用連接所關(guān)注的三維物體和第二物體的曲線手勢來選擇貼合操作。
8.一種存儲有指令的計算機可讀存儲介質(zhì),其響應(yīng)于指令的執(zhí)行而方便計算機系統(tǒng)的行為,所述行為包括: 基于觸摸運動改變虛擬三維環(huán)境中的視察參數(shù); 基于觸摸運動通過約束來操作三維物體;以及 基于觸摸路徑輸入的方向和幾何信息,把所述三維物體向第二三維物體貼合。
9.根據(jù)權(quán)利要求8所述的計算機可讀存儲介質(zhì),其中所述行為還包括: 在多點觸摸顯示設(shè)備上檢測至少三個觸摸點; 基于所述觸摸點計算參考點; 利用所述參考點計算各觸摸點之間的跨度角; 基于各觸摸點之間的跨度角和距離,將拇指和食指與所述觸摸點相關(guān)聯(lián); 基于拇指和食指的方向,將左手或右手與所述觸摸點相關(guān)聯(lián);以及基于右手或左手的順時針或逆時針的手指順序,將中指、無名指和小指與其它接觸點相關(guān)聯(lián)。
10.根據(jù)權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中所述行為還包括: 檢測與所述觸摸點相關(guān)聯(lián)的運動和路徑。
11.根據(jù)權(quán)利要求8所述的計算機可讀存儲介質(zhì),其中所述行為還包括:基于所述觸摸運動來判斷操作類型
12.根據(jù)權(quán)利要求8所述的計算機可讀存儲介質(zhì),其中所述行為還包括: 基于所述觸摸運動來調(diào)整視點。
13.根據(jù)權(quán)利要求8所述的計算機可讀存儲介質(zhì),其中所述行為還包括: 基于所述觸摸運動來調(diào)整視線方向。
14.一種系統(tǒng),包括: 選擇組件,其被構(gòu)造為基于觸摸手勢接收對所關(guān)注的用于操作的物體的選擇; 約束組件,其被構(gòu)造為有助于根據(jù)基于所述觸摸手勢確定的至少兩個接觸點的方向,從所述三維物體的一組候選約束中選擇一個約束; 模式識別組件,其被構(gòu)造為基于所述至少兩個接觸點相對于所選約束的運動路徑來確定變換模式。 變換組件,其被構(gòu)造為以基于觸摸運動的量的變換幅度來施加約束變換。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述手勢是兩指多點觸摸手勢。
16.根據(jù)權(quán)利要求14所述的 系統(tǒng),其中所述約束是選自一組軸線的軸線。
17.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述變換模式是關(guān)于軸線的。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述變換模式為平移、旋轉(zhuǎn)或縮放。
19.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述變換模式是關(guān)于平面的。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中所述變換模式是平移或縮放。
【文檔編號】G06F3/0484GK103890704SQ201280052158
【公開日】2014年6月25日 申請日期:2012年2月7日 優(yōu)先權(quán)日:2011年10月27日
【發(fā)明者】戴秋蘭, 區(qū)建忠, 傅紅波 申請人:香港科技大學(xué)