專利名稱:一種窗口對象慣性移動(dòng)方法及實(shí)現(xiàn)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及觸摸屏設(shè)備的軟件操作界面的設(shè)計(jì)技術(shù),尤其涉及一種窗口對象慣性移動(dòng)方法及實(shí)現(xiàn)裝置。
背景技術(shù):
網(wǎng)絡(luò)即時(shí)通訊工具發(fā)展到今天,已經(jīng)被大多數(shù)的網(wǎng)民所接受,成為用戶必不可少的軟件工具,不但在平時(shí)的休閑娛樂中,而且在用戶的工作中同樣得到廣泛的使用。因此用戶對即時(shí)通訊(IM)軟件的易用性,穩(wěn)定性,安全性等方面提出了較高的要求。隨著技術(shù)發(fā)展出現(xiàn)iPhone等觸摸產(chǎn)品逐漸普及。利用慣性實(shí)現(xiàn)擬物化的設(shè)計(jì)逐漸成為主流?,F(xiàn)有的利用慣性實(shí)現(xiàn)擬物化的設(shè)計(jì)中,用戶可以通過直線觸摸操作實(shí)現(xiàn)基于線速度的列表和網(wǎng)頁的慣性效果的內(nèi)容滾動(dòng),但還不能處理旋轉(zhuǎn)情況下的基于“角速度”的慣性效果。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種窗口對象慣性移動(dòng)方法及實(shí)現(xiàn)裝置, 用于實(shí)現(xiàn)窗口對象的基于線速度和角速度的慣性移動(dòng)效果。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種窗口對象慣性移動(dòng)方法,該方法包括A、監(jiān)控輸入設(shè)備的初始接觸操作,記錄初始接觸坐標(biāo)和接觸時(shí)間,啟動(dòng)第一定時(shí)器 Timerl ;B、在拖動(dòng)窗口對象的過程中,Timerl定時(shí)觸發(fā)獲取相對于前一時(shí)間點(diǎn)用戶通過輸入設(shè)備在屏幕上所產(chǎn)生的位移量和旋轉(zhuǎn)量的事件,并將獲取的位移量和旋轉(zhuǎn)量傳送給窗口對象;C、當(dāng)用戶釋放窗口對象時(shí),獲取窗口對象線速度的初速度和角速度的初速度,啟動(dòng)第二定時(shí)器Timer2 ;D、以所述線速度的初速度和角速度的初速度為基礎(chǔ),依據(jù)線速度減速度和角速度減速度,Timer2定時(shí)觸發(fā)獲取窗口對象當(dāng)前的位移量和旋轉(zhuǎn)量的事件,并將獲取的位移量和旋轉(zhuǎn)量傳送給窗口對象;E、在當(dāng)前Timer2周期對應(yīng)的線速度的初速度和角速度的初速度小于等于0時(shí),終止窗口對象慣性移動(dòng)處理。進(jìn)一步地,根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的方法中,用戶以一個(gè)觸點(diǎn)或多個(gè)觸點(diǎn)通過輸入設(shè)備拖動(dòng)所述窗口對象,在多個(gè)觸點(diǎn)的情況下,以設(shè)備編號最小的兩個(gè)觸點(diǎn)獲取所述位移量和旋轉(zhuǎn)量?;谏鲜龇椒ǎ景l(fā)明還提出一種窗口對象慣性移動(dòng)裝置,該裝置包括觸點(diǎn)捕獲單元,用于捕獲輸入設(shè)備在屏幕拖動(dòng)窗口對象的操作,產(chǎn)生相應(yīng)的控制fn息;拖動(dòng)處理單元,用于根據(jù)觸點(diǎn)捕獲單元發(fā)送的控制信息實(shí)現(xiàn)窗口對象的拖動(dòng)效果;在輸入設(shè)備釋放窗口對象時(shí),獲取線速度的初速度、角速度的初速度,并將獲取的線速度的初速度、角速度的初速度發(fā)送給慣性處理單元;慣性處理單元,用于基于拖動(dòng)處理單元傳送的線速度的初速度、角速度的初速度, 依據(jù)線速度減速度和角速度減速度實(shí)現(xiàn)慣性移動(dòng)效果。進(jìn)一步地,所述觸點(diǎn)捕獲單元產(chǎn)生的所述控制信息包括輸入設(shè)備初始接觸窗口對象時(shí)的初始控制信息,包括位置、時(shí)間、設(shè)備編號、初始接觸窗口對象的標(biāo)識;輸入設(shè)備移動(dòng)窗口對象時(shí)的當(dāng)前控制信息,包括位置、時(shí)間、設(shè)備編號、拖動(dòng)窗口對象的標(biāo)識;輸入設(shè)備釋放窗口對象時(shí)的釋放控制信息,包括位置、時(shí)間、設(shè)備編號、釋放窗口對象的標(biāo)識。進(jìn)一步地,所述拖動(dòng)處理單元包括第一移動(dòng)處理單元,用于在接收到觸點(diǎn)捕獲單元發(fā)送的初始控制信息時(shí),啟動(dòng)第一定時(shí)器Timerl,在所述第一定時(shí)器的觸發(fā)下,依據(jù)觸點(diǎn)捕獲單元發(fā)送的當(dāng)前控制信息獲取Timerl當(dāng)前周期對應(yīng)的窗口對象的位移量和旋轉(zhuǎn)量,并將獲取的位移量和旋轉(zhuǎn)量發(fā)送給窗口對象;初速度處理單元,用于在接收到觸點(diǎn)捕獲單元發(fā)送的釋放控制信息后,獲取線速度初速度和角速度初速度,并將獲取的線速度初速度和角速度初速度發(fā)送給慣性處理單兀。運(yùn)用本發(fā)明提出的技術(shù)方案,實(shí)現(xiàn)了窗口對象的慣性移動(dòng)效果,方便觸摸操作,通過擬物化的界面和操作,提高了移動(dòng)終端軟件的易用性。
圖1為本發(fā)明實(shí)現(xiàn)窗口對象慣性移動(dòng)效果的裝置結(jié)構(gòu)示意圖;圖2為單觸點(diǎn)情況下獲取位移量和旋轉(zhuǎn)量的向量示意圖;圖3為多觸點(diǎn)情況下獲取位移量和旋轉(zhuǎn)量的向量示意圖;圖4為本發(fā)明窗口對象的移動(dòng)方法的處理流程圖。
具體實(shí)施例方式本發(fā)明的基本思想是,對用戶通過鼠標(biāo)或手指移動(dòng)窗口對象的過程,執(zhí)行擬物化處理,在用戶結(jié)束拖動(dòng)操作后,通過慣性處理單元根據(jù)鼠標(biāo)釋放拖動(dòng)按鍵或手指抬起時(shí)的線速度和角速度,實(shí)現(xiàn)移動(dòng)對象的慣性移動(dòng)效果。本發(fā)明中的移動(dòng)對象是指能夠響應(yīng)鼠標(biāo)或基于觸摸屏幕的手指拖動(dòng)操作的窗口對象實(shí)例,所述窗口對象具有自身的界面屬性、方法屬性和數(shù)據(jù)屬性,能夠響應(yīng)窗口界面的觸發(fā)事件;例如,以Window操作系統(tǒng)為例,窗口對象可以是一個(gè)顯示聯(lián)系人信息的窗口對象,該窗口對象包含具有響應(yīng)用戶點(diǎn)擊、移動(dòng)操作的事件函數(shù)、具有寬(Width)、高 (Height)、以窗口中心點(diǎn)為圓心的旋轉(zhuǎn)角度(Angle)、窗口中心點(diǎn)的橫向坐標(biāo)(CenterX)、窗口中心點(diǎn)的縱向坐標(biāo)(CenterY)等界面屬性等。為了方便描述,在下面的說明中,操作場景為用戶通過手指或鼠標(biāo)移動(dòng)代表即時(shí)通信聯(lián)系人的窗口對象實(shí)例(為描述方便,以下統(tǒng)一簡稱為窗口對象),當(dāng)以一定速度移動(dòng)窗口對象時(shí),突然抬起手指或松開鼠標(biāo)按鍵,窗口對象在慣性的作用下沿著原有運(yùn)動(dòng)軌跡, 繼續(xù)移動(dòng)并旋轉(zhuǎn),在摩擦力(減速度)的作用下慢慢變?yōu)殪o止?fàn)顟B(tài)。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下舉實(shí)施例并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。圖1為本發(fā)明實(shí)現(xiàn)窗口對象慣性移動(dòng)效果的裝置結(jié)構(gòu)示意圖,該裝置包括觸點(diǎn)捕獲單元101、拖動(dòng)處理單元102、慣性處理單元103 ;觸點(diǎn)捕獲單元101,用于捕獲輸入設(shè)備在屏幕拖動(dòng)窗口對象的操作,產(chǎn)生相應(yīng)的控制信息;所述輸入設(shè)備包括觸摸屏、鼠標(biāo)、寫字板等可實(shí)現(xiàn)窗口移動(dòng)的設(shè)備;所述控制信息包括(1)輸入設(shè)備初始接觸窗口對象時(shí)的初始控制信息,包括位置、時(shí)間、設(shè)備編號、初始接觸窗口對象的標(biāo)識等;( 輸入設(shè)備移動(dòng)窗口對象時(shí)的當(dāng)前控制信息,包括位置、時(shí)間、設(shè)備編號、拖動(dòng)窗口對象的標(biāo)識等;C3)輸入設(shè)備釋放窗口對象, 結(jié)束拖動(dòng)窗口對象時(shí)的釋放控制信息,包括位置、時(shí)間、設(shè)備編號、標(biāo)識釋放窗口對象的標(biāo)識等;觸點(diǎn)捕獲單元101為本發(fā)明所述裝置與操作系統(tǒng)之間的接口單元,其實(shí)時(shí)監(jiān)視操作系統(tǒng)針對窗口對象的操作,獲得輸入設(shè)備所產(chǎn)生的控制信息,并將控制信息傳送給拖動(dòng)處理單元,由拖動(dòng)處理單元實(shí)現(xiàn)對窗口對象的拖動(dòng)效果。例如當(dāng)鼠標(biāo)或手指在按下并移動(dòng)時(shí),觸點(diǎn)捕獲單元101捕捉到鼠標(biāo)按下或手指觸摸事件,向拖動(dòng)處理單元102發(fā)送初始控制信息,初始控制信息包括接觸點(diǎn)位置坐標(biāo)、 當(dāng)前時(shí)間、設(shè)備編號、標(biāo)識鼠標(biāo)左鍵按下或手指按下準(zhǔn)備拖動(dòng)窗口對象的標(biāo)識等;所述設(shè)備編號用于區(qū)別不同的輸入設(shè)備,在多點(diǎn)觸摸情況下,例如用戶同時(shí)使用兩個(gè)手指觸摸窗口對象,不同時(shí)間接觸到觸摸屏的手指對應(yīng)的設(shè)備編號不同。拖動(dòng)處理單元102,用于根據(jù)觸點(diǎn)捕獲單元101發(fā)送的控制信息實(shí)現(xiàn)窗口對象的拖動(dòng)效果;所述拖動(dòng)處理單元包括第一移動(dòng)處理單元和初速度計(jì)算單元;第一移動(dòng)處理單元,用于在接收到觸點(diǎn)捕獲單元發(fā)送的初始控制信息時(shí),啟動(dòng)第一定時(shí)器Timerl,在所述第一定時(shí)器的觸發(fā)下,依據(jù)觸點(diǎn)捕獲單元發(fā)送的當(dāng)前控制信息獲取Timerl當(dāng)前周期對應(yīng)的窗口對象的位移量和旋轉(zhuǎn)量,并將獲取的位移量和旋轉(zhuǎn)量發(fā)送給窗口對象;初速度處理單元,用于在接收到觸點(diǎn)捕獲單元發(fā)送的釋放控制信息后,獲取線速度初速度和角速度初速度,并將獲取的線速度初速度和角速度初速度發(fā)送給慣性處理單兀。實(shí)現(xiàn)窗口對象的拖動(dòng)效果的方法具體為(1)拖動(dòng)處理單元102接收到觸點(diǎn)捕獲單元101發(fā)送的初始控制信息后,記錄初始接觸點(diǎn)的位置坐標(biāo)信息0(ο,Y0)、初始接觸時(shí)間Ttl和設(shè)備編號;(2)當(dāng)鼠標(biāo)或手指在按下后移動(dòng)時(shí),拖動(dòng)處理單元102每隔周期At,記錄鼠標(biāo)或手指的位置(X” Yi)、當(dāng)時(shí)的時(shí)間Ti和設(shè)備編號,獲取相對前一次記錄時(shí)間點(diǎn)的位移量和旋轉(zhuǎn)量,并將相對位移量和旋轉(zhuǎn)量發(fā)送給窗口對象,窗口對象設(shè)置自身屬性值,以實(shí)現(xiàn)拖動(dòng)效果;例如,窗口對象的中心坐標(biāo)屬性為(CenterX,CenterY),旋轉(zhuǎn)角度屬性為Angle, 當(dāng)窗口對象在周期Ti獲得當(dāng)前的位移量為(ΔΧ,ΔΥ),旋轉(zhuǎn)量為α?xí)r,窗口對象設(shè)置自身的中心坐標(biāo)屬性值和旋轉(zhuǎn)角度屬性值為CenterX = CenterX+ Δ XCenterY = CenterY+ Δ YAngle = Angle+α窗口對象通過設(shè)置上述中心坐標(biāo)屬性值和旋轉(zhuǎn)角度屬性值觸發(fā)窗口對象的界面重畫函數(shù),在新的坐標(biāo)位置和以新的旋轉(zhuǎn)角度顯示窗口對象。(3)當(dāng)輸入設(shè)備釋放窗口對象,即當(dāng)鼠標(biāo)或手指抬起的時(shí),觸點(diǎn)捕獲單元發(fā)送釋放控制信息給拖動(dòng)處理單元,拖動(dòng)處理單元依據(jù)釋放之前Timerl的最后一個(gè)周期獲取的位移量和旋轉(zhuǎn)量獲取線速度的初速度和角速度的初速度;獲取上述位移量、旋轉(zhuǎn)量、線速度的初速度、角速度的初速度時(shí)分單點(diǎn)接觸和多點(diǎn)接觸兩種情況。(1)如圖2所示,在單點(diǎn)接觸情況下位移量、旋轉(zhuǎn)量、線速度的初速度、角速度的初速度的獲取方法為Th 到 Ti 之間的位移量為(Δ X,Δ Y) = (Xi-Xi+ Yi-YiJ其中,(Xi, Yi)為Timerl第Ti周期對應(yīng)觸點(diǎn)的坐標(biāo)向量,(Xi^1, Yi^1)為Timerl第 IV1周期對應(yīng)觸點(diǎn)的坐標(biāo)向量;IV1 到 Ti 之間的旋轉(zhuǎn)量為α = arc0S[Ui.Vi/(|Ui| |Vi|)]其中,旋轉(zhuǎn)中心坐標(biāo)為窗口對象的中心坐標(biāo)(Cx,Cy),Ui為Timerl第Ti周期對應(yīng)的觸點(diǎn)坐標(biāo)與旋轉(zhuǎn)中心坐標(biāo)之間的向量,即Ui = (Xi-Cx5Yi-Cy) ;Vi為Timerl第I^1周期對應(yīng)的觸點(diǎn)坐標(biāo)與旋轉(zhuǎn)中心坐標(biāo)之間的向量,即Vi= (Xi^1-Cx, Yi^1-Cy);輸入設(shè)備釋放窗口對象時(shí)的線速度的初速度V為V = (Xn-Xlri,Yn-Ylri) / (Tn-Tlri) = (Xn-Xlri,Yn-Ylri) / Δ t其中,(Xn, Yn)為輸入設(shè)備釋放窗口對象時(shí),Timerl的最后一個(gè)周期Tn對應(yīng)觸點(diǎn)的坐標(biāo)向量;(Xlri,Ylri)為Tlri周期對應(yīng)觸點(diǎn)的坐標(biāo)向量;若Δ t設(shè)為標(biāo)準(zhǔn)單位時(shí)間時(shí),則可將上述算式簡化為V= (Xnm)在輸入設(shè)備釋放窗口對象時(shí)的角速度的初速度Va的獲取方法為Va = arcos [un. vn/ (| Un vn |) ] / (Tn-Tlri) = arcos [un. vn/ (| Un vn |) ] / Δ t其中,Un為Timerl第Tn周期對應(yīng)的觸點(diǎn)坐標(biāo)(Xn,Yn)與旋轉(zhuǎn)中心坐標(biāo)(Cx,Cy)之間的向量,即un = (Xn-Cx, Yn-Cy) ;vn為Timerl第Tlri周期對應(yīng)的觸點(diǎn)坐標(biāo)與旋轉(zhuǎn)中心坐標(biāo)之間的向量,即 vn = (Xlri-Cx,Ylri-Cy);若Δ t設(shè)為標(biāo)準(zhǔn)單位時(shí)間,則可將上述算式簡化為Va = arcos [un. vn/ (| Un | | vn |)](2)如圖3所示,在多點(diǎn)接觸情況下,只考慮設(shè)備編號最小的兩個(gè)點(diǎn),位移量、旋轉(zhuǎn)量、線速度的初速度、角速度的初速度的獲取方法為假設(shè)設(shè)備編號最小的兩個(gè)觸點(diǎn)在Timerl第IV1周期對應(yīng)的坐標(biāo)為Oii^dtl,Yi^ljdo) 和(Xi-H Yi-U1),第Ti周期對應(yīng)的坐標(biāo)為(Xi,和汰^,^,其中虬也為設(shè)備編號;則該兩點(diǎn)在周期IV1和周期Ti的中心的坐標(biāo)向量分別為(CXi, CYi) = ((X^o+Xi.J/2, (Yui0+Yuil)/2)(CX^CYh) = ((Xh, ^Xi-U1)/2,(Yi^1, ^1, dl)/2)IV1到Ti之間的位移量為(ΔΧ, ΔY) = (CXi-CXi-PCYi-CYH)在輸入設(shè)備釋放窗口對象時(shí),Timerl的周期Tn對應(yīng)的線速度的初速度為V = (CXn-CXlri,CYn-CYlri) / (Tn-Tlri)= (CXn-CXlri,CYn-CYlri) / Δ t其中,(CXn, CYn)、(CXlri,CYlri)分別為輸入設(shè)備釋放窗口對象時(shí),設(shè)備編號最小的兩個(gè)觸點(diǎn)在Timerl最后一個(gè)周期Tn和周期Tlri形成向量的中心點(diǎn)坐標(biāo);At為Timerl的定時(shí)周期;若At設(shè)為標(biāo)準(zhǔn)單位時(shí)間,則公式可以簡化為V = (CXn-CXn+ CYn-CYlri)在多點(diǎn)觸摸的情況下,獲取旋轉(zhuǎn)量時(shí),只考慮設(shè)備編號最小的兩個(gè)點(diǎn),以兩個(gè)點(diǎn)在周期IV1的連線和在周期Ti的連線的交匯點(diǎn)為獲取旋轉(zhuǎn)量的中心點(diǎn),周期Ti對應(yīng)的兩個(gè)點(diǎn)坐標(biāo)為( ,^Yi, J和(Xi^Yiidl),周期Th對應(yīng)的兩個(gè)點(diǎn)的坐標(biāo)為OCi^dci, YH,dQ)和OCH, dl,Yi-1,di),獲取旋轉(zhuǎn)量的旋轉(zhuǎn)中心點(diǎn)坐標(biāo)為(Cx, Cy) = ((Xi, ^Xi, dl)/2,(Yi, ^Yi, dl)/2)Th 到 Ti 之間的旋轉(zhuǎn)量為=Qi = arcos [Ui. Vi/ (| Ui | | Vi)]其中,UiSTimerl的Ti周期對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量(XiidcrXiidl, Yijdo-YijdI),Vi為Timerl的I^1周期對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量(X^,^Xg, dl,Yi-1,dO_Yi-1,dl)。在輸入設(shè)備釋放窗口對象時(shí),Timerl的Tn周期對應(yīng)的旋轉(zhuǎn)量角速度的初速度Va 為Va = arcos [un. vn/ (| Un | | vn|)]/(Tn-Tlri) = arcos [un. vn/ (| Un | | vn |) ] / Δ t其中,Un為輸入設(shè)備釋放窗口對象時(shí),Timerl的最后一個(gè)周期Tn對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量(Xn, d0-X , dl,Yn, d0-Y , dl),Vn為周期Tlri對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量(X η-1,d0~^n-1,dl,Yn-1,dO_Yn-1,di) °若將Δ t設(shè)為標(biāo)準(zhǔn)單位時(shí)間,則公式可以簡化為Va = arcos [un. vn/ (| Un | | vn |)]慣性處理單元103,用于實(shí)現(xiàn)輸入設(shè)備釋放窗口對象后,即用戶結(jié)束拖動(dòng)操作后的慣性移動(dòng)效果;慣性處理單元103在接收到拖動(dòng)處理單元發(fā)送的釋放控制信息后,啟動(dòng)第二定時(shí)器Timer2,每隔Tg時(shí)間周期觸發(fā)一次定時(shí)器處理函數(shù),在定時(shí)器處理函數(shù)中以當(dāng)前 Timer2周期對應(yīng)的線速度初速度和角速度初速度獲取當(dāng)前周期內(nèi)的位移量和旋轉(zhuǎn)量,然后將獲取的當(dāng)前周期內(nèi)的位移量和旋轉(zhuǎn)量發(fā)送給窗口對象,窗口對象設(shè)置自身屬性,以實(shí)現(xiàn)慣性移動(dòng)效果。Timer2第Ti周期對應(yīng)的線速度初速度獲取方法為Vi = VH-VdJTg ;其中,Vdec為線速度減速度,該值可根據(jù)實(shí)際情況由用戶或系統(tǒng)預(yù)先設(shè)置,相當(dāng)于調(diào)整線速度的摩擦系數(shù);在輸入設(shè)備釋放窗口對象后的第一個(gè)Timer2周期,V1為拖動(dòng)處理模塊發(fā)送的線速度初速度V ;Tg為Timer2的周期,該值可由用戶或系統(tǒng)預(yù)先設(shè)置;Timer2第Ti周期對應(yīng)的角速度初速度獲取方法為Vai = VaH-Vadec*Tg其中,Vat^為角速度減速度,該值可根據(jù)實(shí)際情況由用戶或系統(tǒng)預(yù)先設(shè)置,相當(dāng)于調(diào)整角速度的摩擦系數(shù);在輸入設(shè)備釋放窗口對象后的第一個(gè)Timer2周期,Va1為拖動(dòng)處理模塊發(fā)送的角速度初速度Va ;Timer2第Ti周期對應(yīng)的位移量為( Δ X,Δ Y) = (Vi-Vdec^Tg) *Tg = (Vi. X_Vdec*Tg,Vi. Y_Vdec*Tg) *Tg其中,Vi為Timer2第Ti周期對應(yīng)的線速度初速度向量,Tg為Timer2定時(shí)周期;Timer2第Ti周期對應(yīng)的旋轉(zhuǎn)量為α j = (Vai-Vadec^Tg) *Tg其中,ν 為Timer2第Ti周期對應(yīng)的角速度初速度;如果Tg與At相等,且At設(shè)為標(biāo)準(zhǔn)單位時(shí)間,則上述算式可簡化為( Δ X,Δ Y) = (Vi. X-Vdec,Vi. Y-Vdec)α , = (Vai-Vadec)S卩,將Tg= At作為速度采樣、慣性處理和窗口對象位置刷新的單位時(shí)間,可以大大簡化計(jì)算量。當(dāng)通過上述算式獲得當(dāng)前時(shí)間周期窗口對象的慣性移動(dòng)的位移量和旋轉(zhuǎn)量小于等于0時(shí),慣性處理結(jié)束。窗口對象每次接收到慣性處理單元103發(fā)送的位移量和旋轉(zhuǎn)量后,設(shè)置自身的中心坐標(biāo)屬性值和旋轉(zhuǎn)角度屬性值為CenterX = CenterX+ Δ XCenterY = CenterY+ Δ YAngle = Angle+α通過設(shè)置上述中心坐標(biāo)屬性值和旋轉(zhuǎn)角度屬性值觸發(fā)界面重畫函數(shù),在新的坐標(biāo)位置和以新的旋轉(zhuǎn)角度顯示窗口對象,從而實(shí)現(xiàn)慣性移動(dòng)效果。圖4為本發(fā)明窗口對象的移動(dòng)方法的處理流程圖,具體步驟如下步驟401 監(jiān)控輸入設(shè)備的初始接觸操作,獲取初始控制信息;該步驟中,由觸點(diǎn)捕獲單元監(jiān)聽輸入設(shè)備的初始接觸操作,在監(jiān)聽到初始接觸操作后,向拖動(dòng)處理單元發(fā)送初始控制信息;所述輸入設(shè)備包括鼠標(biāo)、觸摸屏、寫字板等具有窗口對象移動(dòng)功能的輸入設(shè)備,輸入設(shè)備不同,所產(chǎn)生的系統(tǒng)消息的類型也不同。例如,鼠標(biāo)觸發(fā)窗口對象移動(dòng)的系統(tǒng)消息可能是鼠標(biāo)左鍵按下并移動(dòng),觸摸屏觸發(fā)窗口對象移動(dòng)的系統(tǒng)消息為手指按下并移動(dòng)等。所述初始接觸操作指,用戶初始按下鼠標(biāo)左鍵、或在觸摸屏上初始按下手指,準(zhǔn)備移動(dòng)窗口對象的點(diǎn)擊操作;所述初始控制信息包括初始接觸點(diǎn)的位置、時(shí)間、設(shè)備編號、按鍵編碼等;步驟402 記錄初始控制信息,啟動(dòng)第一定時(shí)器Timerl,定時(shí)周期設(shè)置為At,At 根據(jù)實(shí)際情況由用戶或系統(tǒng)預(yù)先設(shè)置;拖動(dòng)處理單元接收到觸點(diǎn)捕獲單元發(fā)送的初始控制信息后,記錄所述初始控制信息,并啟動(dòng)Timerl,Timerl用于周期性的觸發(fā)計(jì)算窗口對象的位移量(ΔΧ,ΔY)和旋轉(zhuǎn)量 α的事件函數(shù),從而獲得當(dāng)前周期輸入設(shè)備在屏幕上的所產(chǎn)生的位移量和旋轉(zhuǎn)量。步驟403 =Timerl定時(shí)周期到,獲取當(dāng)前控制信息,獲取當(dāng)前周期用戶通過輸入設(shè)備在屏幕上的所產(chǎn)生的位移量和旋轉(zhuǎn)量;執(zhí)行該步驟的前提條件是,用戶保持輸入設(shè)備的按下操作,靜止或拖動(dòng)窗口對象, 觸點(diǎn)捕獲單元將監(jiān)控到的輸入設(shè)備產(chǎn)生的系統(tǒng)消息,轉(zhuǎn)化為當(dāng)前控制信息(包括位置、時(shí)間、設(shè)備編號等)持續(xù)不斷地發(fā)送給拖動(dòng)處理單元,拖動(dòng)處理單元實(shí)時(shí)更新本地緩存的當(dāng)前控制信息,并在每個(gè)Timerl定時(shí)周期到時(shí)記錄當(dāng)前的控制信息,形成控制信息的歷史記錄,通過該歷史記錄可以反映出輸入設(shè)備在屏幕上移動(dòng)的軌跡,也可稱為手勢;步驟404:窗口對象依據(jù)獲得的位移量和旋轉(zhuǎn)量,調(diào)整窗口對象在屏幕上的位置和旋轉(zhuǎn)角度;拖動(dòng)處理單元在獲得當(dāng)前時(shí)間點(diǎn)的位移量和旋轉(zhuǎn)量后,將其傳送給窗口對象;窗口對象通過設(shè)置自身的中心點(diǎn)坐標(biāo)、相對于自身中心點(diǎn)坐標(biāo)的旋轉(zhuǎn)角度的屬性值來觸發(fā)窗口重畫方法,從而實(shí)現(xiàn)拖動(dòng)效果;步驟405 判斷輸入設(shè)備是否釋放窗口對象,即用戶是否抬起鼠標(biāo)按鍵或手指,結(jié)束拖動(dòng)操作,若是,則執(zhí)行步驟406 ;否則執(zhí)行步驟403 ;該步驟中,由觸點(diǎn)捕獲單元監(jiān)視輸入設(shè)備是否釋放窗口對象,當(dāng)檢測到釋放消息后,立即向拖動(dòng)處理單元發(fā)送釋放控制消息,所述釋放控制消息包含釋放時(shí)刻的位置、時(shí)間、設(shè)備編號等信息;步驟406 在結(jié)束拖動(dòng)操作時(shí),獲取Timerl的最后一個(gè)周期Tn對應(yīng)的線速度的初速度V和角速度的初速度Va,終止Timerl ;拖動(dòng)處理單元依據(jù)控制信息的歷史記錄,獲取在輸入設(shè)備釋放窗口對象時(shí), Timerl最后一個(gè)周期Tn對應(yīng)的線速度的初速度V和角速度的初速度Va,獲取方法見前文所述,此處不再贅述;拖動(dòng)處理單元將獲取的初速度V和角速度的初速度Va發(fā)送給慣性處
理單元;步驟407 啟動(dòng)第二定時(shí)器Timer2,定時(shí)周期設(shè)置為Tg ; 該步驟中,慣性處理單元接收到V和Va后,啟動(dòng)第二定時(shí)器,第二定時(shí)器用于實(shí)現(xiàn)輸入設(shè)備釋放窗口對象后的慣性移動(dòng)效果;步驟408 每次Timer2定時(shí)周期到時(shí),依據(jù)線速度減速度Vdee和角速度減速度Vadec 獲取窗口對象當(dāng)前的位移量和旋轉(zhuǎn)量,并記錄當(dāng)前時(shí)刻的位置,以及為下一定時(shí)周期計(jì)算線速度的初速度V和角速度的初速度Va ;該步驟由慣性處理單元依據(jù)預(yù)設(shè)的Vde。和Vadee獲取在輸入設(shè)備釋放窗口對象后, 在當(dāng)前Timer2定時(shí)周期內(nèi)繼續(xù)向前移動(dòng)的位移量和旋轉(zhuǎn)量,獲取方法見前文所述,此處不再贅述;
下一 Timer2定時(shí)周期的線速度的初速度V和角速度的初速度Va的獲取方法為Vi = VH-VdJTg ;Vai = VaH-Vadec^Tg步驟409 判斷慣性移動(dòng)是否結(jié)束,若是,則結(jié)束流程;若否,則執(zhí)行步驟410 ;判斷慣性移動(dòng)是否結(jié)束方法為判斷步驟408獲得的Vi和Vai是否小于等于0, 若是,則終止Timer2,慣性移動(dòng)處理結(jié)束;若有一個(gè)值小于等于0,另一個(gè)值仍大于0,則還需對另一個(gè)值進(jìn)行慣性處理,例如,當(dāng)Vi小于等于0,Vai大于0時(shí),在當(dāng)前周期和后續(xù)的 Timer2周期中,位移量都為0,旋轉(zhuǎn)量不為0,直到二者在當(dāng)前周期都小于等于0時(shí),慣性移動(dòng)處理才結(jié)束。步驟410 窗口對象依據(jù)獲得的位移量和旋轉(zhuǎn)量,調(diào)整窗口對象在屏幕上的位置和旋轉(zhuǎn)角度,實(shí)現(xiàn)慣性移動(dòng)效果;然后再次執(zhí)行步驟408。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種窗口對象慣性移動(dòng)方法,其特征在于,該方法包括A、監(jiān)控輸入設(shè)備的初始接觸操作,記錄初始接觸坐標(biāo)和接觸時(shí)間,啟動(dòng)第一定時(shí)器 Timerl ;B、在拖動(dòng)窗口對象的過程中,Timerl定時(shí)觸發(fā)獲取相對于前一時(shí)間點(diǎn)用戶通過輸入設(shè)備在屏幕上所產(chǎn)生的位移量和旋轉(zhuǎn)量的事件,并將獲取的位移量和旋轉(zhuǎn)量傳送給窗口對象;C、當(dāng)用戶釋放窗口對象時(shí),獲取窗口對象線速度的初速度和角速度的初速度,啟動(dòng)第二定時(shí)器Timer2 ;D、以所述線速度的初速度和角速度的初速度為基礎(chǔ),依據(jù)線速度減速度和角速度減速度,Timer2定時(shí)觸發(fā)獲取窗口對象當(dāng)前的位移量和旋轉(zhuǎn)量的事件,并將獲取的位移量和旋轉(zhuǎn)量傳送給窗口對象;E、在當(dāng)前Timer2周期對應(yīng)的線速度的初速度和角速度的初速度小于等于0時(shí),終止窗口對象慣性移動(dòng)處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的方法中,用戶以一個(gè)觸點(diǎn)或多個(gè)觸點(diǎn)通過輸入設(shè)備拖動(dòng)所述窗口對象,在多個(gè)觸點(diǎn)的情況下,以設(shè)備編號最小的兩個(gè)觸點(diǎn)獲取所述位移量和旋轉(zhuǎn)量。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在單觸點(diǎn)情況下,步驟B中,獲取所述位移量和旋轉(zhuǎn)量方法,具體為 TH 到 Ti 之間的位移量為:(ΔΧ, ΔΥ) = (Xi-Xi^1, Yi-YH)其中,(Xi, Yi)為Timerl第Ti周期對應(yīng)觸點(diǎn)的坐標(biāo)向量,(X^,YiJ為Timerl第Ti^1 周期對應(yīng)觸點(diǎn)的坐標(biāo)向量;Th到凡之間的旋轉(zhuǎn)量為Wi = arcos^.v^duj IvJ)]其中,旋轉(zhuǎn)中心坐標(biāo)為窗口對象的中心坐標(biāo)(Cx,Cy),Ui為Timerl第Ti周期對應(yīng)的觸點(diǎn)坐標(biāo)與旋轉(zhuǎn)中心坐標(biāo)之間的向量,即Ui = (Xi-Cx5Yi-Cy) ;Vi為Timerl第I^1周期對應(yīng)的觸點(diǎn)坐標(biāo)與旋轉(zhuǎn)中心坐標(biāo)之間的向量,即Vi = (Xi^1-Cx, Yi^1-Cy);在單觸點(diǎn)情況下,步驟C中,獲取所述線速度的初速度V和角速度的初速度Va的方法, 具體為V= (Xn-Xn+Yn-YnJ/(Tn-Tlri) = (Xnm)Mt其中,(Xn,Yn)為輸入設(shè)備釋放窗口對象時(shí),Timerl最后一個(gè)周期Tn對應(yīng)觸點(diǎn)的坐標(biāo)向量;O^1, Yn-i)為Tlri周期對應(yīng)觸點(diǎn)的坐標(biāo)向量;Δ t為Timerl的定時(shí)周期; Va = arcos [un. vn/ (| Un vn |) ] / (Tn-Tlri) = arcos [un. vn/ (| Un vn |) ] / Δ t 其中, 為輸入設(shè)備釋放窗口對象時(shí),打!!^!~1第1;周期對應(yīng)的觸點(diǎn)坐標(biāo)(Xn,Yn)與旋轉(zhuǎn)中心坐標(biāo)(Cx,Cy)之間的向量,即un = (Xn-Cx, Yn-Cy) ;vn為Timerl第Tlri周期對應(yīng)的觸點(diǎn)坐標(biāo)與旋轉(zhuǎn)中心坐標(biāo)之間的向量,即Vn = (Xn_「Cx,Yn_「Cy)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,在多觸點(diǎn)情況下,步驟B中,獲取所述位移量和旋轉(zhuǎn)量方法,具體為 IV1 到凡之間的位移量為(ΔΧ,ΔY) = (CXi-CX^1,CYi-CYiJ 其中,(CXi, CYi)、(CXp1,CYi^1)分別為設(shè)備編號最小的兩個(gè)觸點(diǎn)在Timerl第Ti和Ti^ 周期對應(yīng)的中心點(diǎn)坐標(biāo);Th到凡之間的旋轉(zhuǎn)量為Wi = arcos^.v^duj IvJ)]其中,Ui為Timerl的Ti周期對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量,Vi為Timerl 的IV1周期對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量;在多觸點(diǎn)情況下,步驟C中,獲取所述V和Va的方法,具體為V= (CXn-CXlri,CYn-CYnJ/(Tn-Tlri) = (CXn-CXlri,CYn-CYj/At其中,(CXn, CYn), (CXn_i; CYn^1)分別為輸入設(shè)備釋放窗口對象時(shí)設(shè)備編號最小的兩個(gè)觸點(diǎn)在Timerl最后一個(gè)周期Tn和周期Tlri對應(yīng)形成向量的中心點(diǎn)坐標(biāo);Δ t為Timerl的定時(shí)周期;Va = arcos [un. vn/ (| Un vn |) ] / (Tn-Tn-I) = arcos [un. vn/ (| Un vn |) ] / Δ t其中,un為輸入設(shè)備釋放窗口對象時(shí),Timerl的最后一個(gè)周期Tn對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量,vn為周期Tlri對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟D中,依據(jù)所述線速度的減速度和角速度的減速度獲取窗口對象當(dāng)前的位移量和旋轉(zhuǎn)量的方法為Timer2 第 Ti 周期對應(yīng)的位移量為:(ΔΧ,ΔΥ) = (Vi-Vdec^Tg)*TgTimer2第Ti周期對應(yīng)的旋轉(zhuǎn)量為α i = (Vai-Vadec^Tg) *Tg其中,Vdec為線速度減速度,Vadec為角速度減速度Ji為Timer2第Ti周期對應(yīng)的線速度初速度;ν 為Timer2第Ti周期對應(yīng)的角速度初速度;Tg為Timer2定時(shí)周期;輸入設(shè)備釋放窗口對象后的第一個(gè)Timer2周期對應(yīng)的線速度初速度和角速度初速度為步驟C中獲取的線速度的初速度和角速度的初速度。
6.一種窗口對象慣性移動(dòng)裝置,其特征在于,該裝置包括觸點(diǎn)捕獲單元,用于捕獲輸入設(shè)備在屏幕拖動(dòng)窗口對象的操作,產(chǎn)生相應(yīng)的控制信息;拖動(dòng)處理單元,用于根據(jù)觸點(diǎn)捕獲單元發(fā)送的控制信息實(shí)現(xiàn)窗口對象的拖動(dòng)效果;在輸入設(shè)備釋放窗口對象時(shí),獲取線速度的初速度、角速度的初速度,并將獲取的線速度的初速度、角速度的初速度發(fā)送給慣性處理單元;慣性處理單元,用于基于拖動(dòng)處理單元傳送的線速度的初速度、角速度的初速度,依據(jù)線速度減速度和角速度減速度實(shí)現(xiàn)慣性移動(dòng)效果。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述觸點(diǎn)捕獲單元產(chǎn)生的所述控制信息包括輸入設(shè)備初始接觸窗口對象時(shí)的初始控制信息,包括位置、時(shí)間、設(shè)備編號、初始接觸窗口對象的標(biāo)識;輸入設(shè)備移動(dòng)窗口對象時(shí)的當(dāng)前控制信息,包括位置、時(shí)間、設(shè)備編號、拖動(dòng)窗口對象的標(biāo)識;輸入設(shè)備釋放窗口對象時(shí)的釋放控制信息,包括位置、時(shí)間、設(shè)備編號、 釋放窗口對象的標(biāo)識。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述拖動(dòng)處理單元包括第一移動(dòng)處理單元,用于在接收到觸點(diǎn)捕獲單元發(fā)送的初始控制信息時(shí),啟動(dòng)第一定時(shí)器Timerl,在所述第一定時(shí)器的觸發(fā)下,依據(jù)觸點(diǎn)捕獲單元發(fā)送的當(dāng)前控制信息獲取 Timerl當(dāng)前周期對應(yīng)的窗口對象的位移量和旋轉(zhuǎn)量,并將獲取的位移量和旋轉(zhuǎn)量發(fā)送給窗口對象;初速度處理單元,用于在接收到觸點(diǎn)捕獲單元發(fā)送的釋放控制信息后,獲取線速度初速度和角速度初速度,并將獲取的線速度初速度和角速度初速度發(fā)送給慣性處理單元。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,在單觸點(diǎn)情況下,所述第一移動(dòng)處理單元獲取所述位移量和旋轉(zhuǎn)量方法,具體為Th 到 Ti 之間的位移量為:(ΔΧ, ΔΥ) = (Xi-Xi^1, Yi-YiJ其中,(Xi, Yi)為Timerl第Ti周期對應(yīng)觸點(diǎn)的坐標(biāo)向量,(X^,YiJ為Timerl第Ti^1 周期對應(yīng)觸點(diǎn)的坐標(biāo)向量;Th到凡之間的旋轉(zhuǎn)量為Wi = arcos^.v^duj IvJ)]其中,旋轉(zhuǎn)中心坐標(biāo)為窗口對象的中心坐標(biāo)(Cx,Cy),Ui為Timerl第Ti周期對應(yīng)的觸點(diǎn)坐標(biāo)與旋轉(zhuǎn)中心坐標(biāo)之間的向量,即Ui = (Xi-Cx5Yi-Cy) ;Vi為Timerl第I^1周期對應(yīng)的觸點(diǎn)坐標(biāo)與旋轉(zhuǎn)中心坐標(biāo)之間的向量,即Vi = (Xi^1-Cx, Yi^1-Cy);在單觸點(diǎn)情況下,所述初速度處理單元獲取所述線速度的初速度V和角速度的初速度 Va的方法,具體為V= (Xn-Xn+Yn-YnJ/(Tn-Tlri) = (Xnm)Mt其中,(Xn,Yn)為輸入設(shè)備釋放窗口對象時(shí),Timerl最后一個(gè)周期Tn對應(yīng)觸點(diǎn)的坐標(biāo)向量;O^1, Yn-i)為Tlri周期對應(yīng)觸點(diǎn)的坐標(biāo)向量;Δ t為Timerl的定時(shí)周期; Va = arcos [un. vn/ (| Un vn |) ] / (Tn-Tlri) = arcos [un. vn/ (| Un vn |) ] / Δ t 其中, 為輸入設(shè)備釋放窗口對象時(shí),打!!^!~1第1;周期對應(yīng)的觸點(diǎn)坐標(biāo)(Xn,Yn)與旋轉(zhuǎn)中心坐標(biāo)(Cx,Cy)之間的向量,即un = (Xn-Cx, Yn-Cy) ;vn為Timerl第Tlri周期對應(yīng)的觸點(diǎn)坐標(biāo)與旋轉(zhuǎn)中心坐標(biāo)之間的向量,即Vn= (Xn_「Cx,Yn_「Cy);在多觸點(diǎn)情況下,所述第一移動(dòng)處理單元獲取所述位移量和旋轉(zhuǎn)量方法,具體為 IV1 到凡之間的位移量為(ΔΧ,ΔY) = (CXi-CX^1,CYi-CYiJ 其中,(CXi, CYi)、(CXp1,CYi^1)分別為設(shè)備編號最小的兩個(gè)觸點(diǎn)在Timerl第Ti和Ti^ 周期對應(yīng)的中心點(diǎn)坐標(biāo);Th到凡之間的旋轉(zhuǎn)量為Wi = arcos^.v^duj IvJ)]其中,Ui為Timerl的Ti周期對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量,Vi為Timerl 的IV1周期對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量;在多觸點(diǎn)情況下,所述初速度處理單元獲取所述線速度的初速度V和角速度的初速度 Va的方法,具體為V= (CXn-CXlri,CYn-CYnJ/(Tn-Tlri) = (CXn-CXlri,CYn-CYj/At 其中,(CXn, CYn), (CXn_i; CYn^1)分別為輸入設(shè)備釋放窗口對象時(shí)設(shè)備編號最小的兩個(gè)觸點(diǎn)在Timerl最后一個(gè)周期Tn和周期Tlri對應(yīng)形成向量的中心點(diǎn)坐標(biāo);Δ t為Timerl的定時(shí)周期;Va = arcos [un. vn/ (| Un vn |) ] / (Tn-Tn-I) = arcos [un. vn/ (| Un vn |) ] / Δ t 其中,un為輸入設(shè)備釋放窗口對象時(shí),Timerl的最后一個(gè)周期Tn對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量,vn為周期Tlri對應(yīng)的設(shè)備編號最小的兩個(gè)點(diǎn)形成的向量。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述慣性處理單元依據(jù)所述線速度的減速度和角速度的減速度獲取窗口對象當(dāng)前的位移量和旋轉(zhuǎn)量的方法為Timer2 第 Ti 周期對應(yīng)的位移量為:(ΔΧ,ΔΥ) = (Vi-Vdec^Tg)*Tg Timer2第Ti周期對應(yīng)的旋轉(zhuǎn)量為α i = (Vai-Vadec^Tg) *Tg其中,Vdec為線速度減速度,Vadec為角速度減速度Ji為Timer2第Ti周期對應(yīng)的線速度初速度;ν 為Timer2第Ti周期對應(yīng)的角速度初速度;Tg為Timer2定時(shí)周期;輸入設(shè)備釋放窗口對象后的第一個(gè)Timer2周期對應(yīng)的線速度初速度和角速度初速度為步驟C中獲取的線速度的初速度和角速度的初速度。
全文摘要
本發(fā)明公開了一種窗口對象慣性移動(dòng)方法及實(shí)現(xiàn)裝置,用于實(shí)現(xiàn)窗口對象的基于線速度和角速度的慣性移動(dòng)效果。本發(fā)明在輸入設(shè)備釋放被拖動(dòng)的窗口對象時(shí),獲取線速度的初速度和減速度的初速度,通過線速度減速度和角速度減速度獲取每個(gè)處理周期對應(yīng)的位移量和旋轉(zhuǎn)量,模擬窗口對象在鼠標(biāo)按鍵抬起或手指從觸摸屏抬起后的慣性移動(dòng)效果。通過本發(fā)明,實(shí)現(xiàn)了窗口對象的慣性移動(dòng)效果,方便觸摸操作,提高了移動(dòng)終端軟件的易用性。
文檔編號G06F3/041GK102314297SQ20101022345
公開日2012年1月11日 申請日期2010年7月7日 優(yōu)先權(quán)日2010年7月7日
發(fā)明者任旻, 張強(qiáng), 高舜東 申請人:騰訊科技(深圳)有限公司