基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法、系統(tǒng)及電子設(shè)備的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法、系統(tǒng)及電子設(shè)備,所述方法包括:以預(yù)定步長(zhǎng)對(duì)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置進(jìn)行采樣,獲取多個(gè)第一碰撞檢測(cè)點(diǎn);根據(jù)所述第一碰撞檢測(cè)點(diǎn)與虛擬相機(jī)原點(diǎn)獲取拾取射線;檢測(cè)所述拾取射線是否與3D物體有相交,如有相交則選中所述3D物體并進(jìn)行渲染。本發(fā)明不僅實(shí)現(xiàn)了高效的3D區(qū)域的圈選效果,而且還優(yōu)化了3D空間射線點(diǎn)的選取,節(jié)省了大量冗余計(jì)算,提高了3D空間檢測(cè)算法的執(zhí)行效率。
【專(zhuān)利說(shuō)明】基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法、系統(tǒng)及電子設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及3D圖標(biāo)的框選技術(shù),尤其涉及的是一種基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法、系統(tǒng)及電子設(shè)備。
【背景技術(shù)】
[0002]在3D Launcher場(chǎng)景開(kāi)發(fā)中,有時(shí)候會(huì)碰到用鼠標(biāo)畫(huà)線在任意不規(guī)則封閉區(qū)域圈選圖標(biāo)的情況,傳統(tǒng)的圈選技術(shù)使用的是2D平面矩形區(qū)域劃分的算法。因?yàn)橛脩?hù)圈選的封閉區(qū)域是不確定的凸凹多邊形,一般采用的方法是平面射線相交點(diǎn)數(shù)奇偶判別法,由于3DUI場(chǎng)景中的元素可能是3D物體,也可能是2D物體,單純用2D的判別算法,劃分區(qū)域無(wú)法實(shí)現(xiàn)3D場(chǎng)景的圈選效果。
[0003]因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法、系統(tǒng)及電子設(shè)備,以解決現(xiàn)有單純采用2D的判別算法在劃分區(qū)域無(wú)法實(shí)現(xiàn)3D場(chǎng)景的圈選效果的問(wèn)題。
[0005]本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案如下:
一種基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其中,包括步驟:
以預(yù)定步長(zhǎng)對(duì)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置進(jìn)行采樣,獲取多個(gè)第一碰撞檢測(cè)
占.根據(jù)所述第一碰撞檢測(cè)點(diǎn)與虛擬相機(jī)原點(diǎn)獲取拾取射線;
檢測(cè)所述拾取射線是否與3D物體有相交,如有相交則選中所述3D物體并進(jìn)行渲染。
[0006]進(jìn)一步地,所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其中,根據(jù)3D物體在屏幕上的高度和寬度,計(jì)算采樣間隔的預(yù)定步長(zhǎng)。
[0007]進(jìn)一步地,所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其中,所述預(yù)定步長(zhǎng)為3D物體在屏幕上的對(duì)角線長(zhǎng)度的一半。
[0008]進(jìn)一步地,所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其中,獲取多個(gè)第一碰撞檢測(cè)點(diǎn)的步驟具體包括:
獲取操作焦點(diǎn)在屏幕上移動(dòng)的起點(diǎn)坐標(biāo)(X(i,y0)和終點(diǎn)坐標(biāo)(χη,yn);
計(jì)算第一碰撞檢測(cè)點(diǎn)的個(gè)數(shù)m, m=S/N ;S為起點(diǎn)與終點(diǎn)的距離,N為預(yù)定步長(zhǎng),m為整
數(shù);
以預(yù)定步長(zhǎng)N對(duì)操作焦點(diǎn)在屏幕上的拖動(dòng)線段上進(jìn)行采樣,獲取的第一碰撞檢測(cè)點(diǎn)坐標(biāo)為(X0+ (Xn-X(I) *i/m, yQ+(yn-yQ)*i/m),其中,i 為 I 至 m 的整數(shù)。
[0009]進(jìn)一步地,所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其中,對(duì)選中的所述3D物體進(jìn)行渲染的步驟具體包括:
對(duì)選中3D物體的特定區(qū)域設(shè)置差別化特征; 對(duì)選中的3D物體進(jìn)行差別化渲染并顯示。
[0010]進(jìn)一步地,所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其中,所述檢測(cè)所述拾取射線是否與3D物體有相交,如有相交則選中所述3D物體并進(jìn)行渲染步驟還包括:
獲取所述拾取射線在遠(yuǎn)剪裁面上的交點(diǎn),記為第二碰撞檢測(cè)點(diǎn);
檢測(cè)所述拾取射線在第一碰撞檢測(cè)點(diǎn)與第二碰撞檢測(cè)點(diǎn)線段范圍內(nèi)相交的3D物體記為選中的3D物體。
[0011]—種基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選系統(tǒng),其中,所述系統(tǒng)包括:
第一碰撞檢測(cè)點(diǎn)獲取模塊,用于以預(yù)定步長(zhǎng)對(duì)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置進(jìn)行采樣,獲取多個(gè)第一碰撞檢測(cè)點(diǎn);
拾取射線獲取模塊,用于根據(jù)所述第一碰撞檢測(cè)點(diǎn)與虛擬相機(jī)原點(diǎn)獲取拾取射線;
框選模塊,用于檢測(cè)所述拾取射線是否與3D物體有相交,如有相交則選中所述3D物體并進(jìn)行渲染。
[0012]進(jìn)一步地,所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選系統(tǒng),其中,所述系統(tǒng)還包括: 預(yù)設(shè)置模塊,用于根據(jù)3D物體在屏幕上的高度和寬度,計(jì)算采樣間隔的預(yù)定步長(zhǎng)。
[0013]進(jìn)一步地,所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選系統(tǒng),其中,所述框選模塊還包括:
渲染模塊,用于對(duì)選中3D物體的特定區(qū)域設(shè)置差別化特征,并對(duì)選中的3D物體進(jìn)行差別化渲染。
[0014]進(jìn)一步地,所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選系統(tǒng),其中,所述框選模塊包括:
第二碰撞檢測(cè)點(diǎn)獲取模塊,用于獲取所述拾取射線在遠(yuǎn)剪裁面上的交點(diǎn),記為第二碰撞檢測(cè)點(diǎn);
檢測(cè)模塊,用于檢測(cè)所述拾取射線在第一碰撞檢測(cè)點(diǎn)與第二碰撞檢測(cè)點(diǎn)線段范圍內(nèi)相交的3D物體記為選中的3D物體。
[0015]一種電子設(shè)備,其中,所述的電子設(shè)備設(shè)置有一框選系統(tǒng),用于根據(jù)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置對(duì)多個(gè)物體進(jìn)行框選選定。
[0016]進(jìn)一步地,所述的電子設(shè)備,其中,所述的框選系統(tǒng)包括:
第一碰撞檢測(cè)點(diǎn)獲取模塊,用于以預(yù)定步長(zhǎng)對(duì)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置進(jìn)行采樣,獲取多個(gè)第一碰撞檢測(cè)點(diǎn);
拾取射線獲取模塊,用于根據(jù)所述第一碰撞檢測(cè)點(diǎn)與虛擬相機(jī)原點(diǎn)獲取拾取射線;
框選模塊,用于根據(jù)所述拾取射線是否與3D物體有相交,如有相交則選中所述3D物體并進(jìn)行渲染。
[0017]本發(fā)明所提供的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法、系統(tǒng)及電子設(shè)備,不僅實(shí)現(xiàn)了高效的3D區(qū)域的圈選效果,而且還優(yōu)化了 3D空間射線點(diǎn)的選取,節(jié)省了大量冗余計(jì)算,提高了 3D空間檢測(cè)算法的執(zhí)行效率。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0018]圖1是本發(fā)明提供的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法的流程圖。
[0019]圖2是圖1中通過(guò)拾取射線進(jìn)行物體拾取的原理示意圖。[0020]圖3是本發(fā)明提供的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選系統(tǒng)的結(jié)構(gòu)示意圖。
[0021]圖4是圖3中一優(yōu)選實(shí)施例的結(jié)構(gòu)示意圖。
[0022]圖5是圖3中又一優(yōu)選實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]參見(jiàn)圖1,圖1是本發(fā)明提供的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法的流程圖,包括以下步驟:
步驟S100、以預(yù)定步長(zhǎng)對(duì)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置進(jìn)行采樣,獲取多個(gè)第一碰撞檢測(cè)點(diǎn)。[0025]其中,在執(zhí)行步驟SlOO之前,首先根據(jù)3D物體在屏幕上的高度和寬度,計(jì)算采樣間隔的預(yù)定步長(zhǎng)。由于3D物體或者圖標(biāo)的大小在正常狀態(tài)下是確定的,根據(jù)3 D物體或者圖標(biāo)的高度和寬度可以動(dòng)態(tài)確定采樣間隔的步長(zhǎng),以盡可能的減少計(jì)算量,提高效率。本發(fā)明采用的預(yù)定步長(zhǎng)優(yōu)選為3D物體在屏幕上的對(duì)角線長(zhǎng)度的一半,這里當(dāng)多個(gè)3D物體的形狀大小不一致的時(shí)候,所述的3D物體取最小3D物體的對(duì)角線長(zhǎng)度的一半為宜。當(dāng)然預(yù)定步長(zhǎng)并不限于采用對(duì)角線長(zhǎng)度的一半這一固定值,預(yù)定步長(zhǎng)也可以在對(duì)角線長(zhǎng)度的一半上下浮動(dòng)。在具體計(jì)算是,3D物體在屏幕上的大小很容易確定,我們定義其高度和寬度分別為X和y,預(yù)定步長(zhǎng)為N,則預(yù)定步長(zhǎng)
【權(quán)利要求】
1.一種基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其特征在于,包括步驟: 以預(yù)定步長(zhǎng)對(duì)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置進(jìn)行采樣,獲取多個(gè)第一碰撞檢測(cè)占.根據(jù)所述第一碰撞檢測(cè)點(diǎn)與虛擬相機(jī)原點(diǎn)獲取拾取射線; 檢測(cè)所述拾取射線是否與3D物體有相交,如有相交則選中所述3D物體并進(jìn)行渲染。
2.根據(jù)權(quán)利要求1所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其特征在于,根據(jù)3D物體在屏幕上的高度和寬度,計(jì)算采樣間隔的預(yù)定步長(zhǎng)。
3.根據(jù)權(quán)利要求1或2所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其特征在于,所述預(yù)定步長(zhǎng)為3D物體在屏幕上的對(duì)角線長(zhǎng)度的一半。
4.根據(jù)權(quán)利要求1所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其特征在于,獲取多個(gè)第一碰撞檢測(cè)點(diǎn)的步驟具體包括: 獲取操作焦點(diǎn)在屏幕上移動(dòng)的起點(diǎn)坐標(biāo)(X(i,y0)和終點(diǎn)坐標(biāo)(χη,yn); 計(jì)算第一碰撞檢測(cè)點(diǎn)的個(gè)數(shù)m, m=S/N ;S為起點(diǎn)與終點(diǎn)的距離,N為預(yù)定步長(zhǎng),m為整數(shù); 以預(yù)定步長(zhǎng)N對(duì)操作焦點(diǎn)在屏幕上的拖動(dòng)線段上進(jìn)行采樣,獲取的第一碰撞檢測(cè)點(diǎn)坐標(biāo)為(X0+ (Xn-X(I) *i/m, yQ+(yn-yQ)*i/m),其中,i 為 I 至 m 的整數(shù)。
5.根據(jù)權(quán)利要求1所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其特征在于,對(duì)選中的所述3D物體進(jìn)行渲染的步驟具體包括: 對(duì)選中3D物體的特定區(qū)域設(shè)置差別化特征; 對(duì)選中的3D物體進(jìn)行差別化渲染并顯示。
6.根據(jù)權(quán)利要求1所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選方法,其特征在于,所述檢測(cè)所述拾取射線是否與3D物體有相交,如有相交則選中所述3D物體并進(jìn)行渲染步驟還包括: 獲取所述拾取射線在遠(yuǎn)剪裁面上的交點(diǎn),記為第二碰撞檢測(cè)點(diǎn); 檢測(cè)所述拾取射線在第一碰撞檢測(cè)點(diǎn)與第二碰撞檢測(cè)點(diǎn)線段范圍內(nèi)相交的3D物體記為選中的3D物體。
7.一種基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選系統(tǒng),其特征在于,所述系統(tǒng)包括: 第一碰撞檢測(cè)點(diǎn)獲取模塊,用于以預(yù)定步長(zhǎng)對(duì)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置進(jìn)行采樣,獲取多個(gè)第一碰撞檢測(cè)點(diǎn); 拾取射線獲取模塊,用于根據(jù)所述第一碰撞檢測(cè)點(diǎn)與虛擬相機(jī)原點(diǎn)獲取拾取射線; 框選模塊,用于檢測(cè)所述拾取射線是否與3D物體有相交,如有相交則選中所述3D物體并進(jìn)行渲染。
8.根據(jù)權(quán)利要求7所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選系統(tǒng),其特征在于,所述系統(tǒng)還包括: 預(yù)設(shè)置模塊,用于根據(jù)3D物體在屏幕上的高度和寬度,計(jì)算采樣間隔的預(yù)定步長(zhǎng)。
9.根據(jù)權(quán)利要求7所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選系統(tǒng),其特征在于,所述框選模塊還包括: 渲染模塊,用于對(duì)選中3D物體的特定區(qū)域設(shè)置差別化特征,并對(duì)選中的3D物體進(jìn)行差別化渲染。
10.根據(jù)權(quán)利要求7所述的基于關(guān)鍵點(diǎn)射線碰撞檢測(cè)的框選系統(tǒng),其特征在于,所述框選模塊包括: 第二碰撞檢測(cè)點(diǎn)獲取模塊,用于獲取所述拾取射線在遠(yuǎn)剪裁面上的交點(diǎn),記為第二碰撞檢測(cè)點(diǎn); 檢測(cè)模塊,用于檢測(cè)所述拾取射線在第一碰撞檢測(cè)點(diǎn)與第二碰撞檢測(cè)點(diǎn)線段范圍內(nèi)相交的3D物體記為選中的3D物體。
11.一種電子設(shè)備,其特征在于,所述的電子設(shè)備設(shè)置有一框選系統(tǒng),用于根據(jù)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置對(duì)多個(gè)物體進(jìn)行框選選定。
12.如權(quán)利要求11所述的電子設(shè)備,其特征在于,所述的框選系統(tǒng)包括: 第一碰撞檢測(cè)點(diǎn)獲取模塊,用于以預(yù)定步長(zhǎng)對(duì)用戶(hù)在屏幕上操作焦點(diǎn)的移動(dòng)位置進(jìn)行采樣,獲取多個(gè)第一碰撞檢測(cè)點(diǎn); 拾取射線獲取模塊,用于根據(jù)所述第一碰撞檢測(cè)點(diǎn)與虛擬相機(jī)原點(diǎn)獲取拾取射線; 框選模塊,用于根據(jù)所述拾取射線是否與3D物體有相交,如有相交則選中所述3D物體并進(jìn)行渲染。`
【文檔編號(hào)】G06F3/0346GK103529959SQ201310021066
【公開(kāi)日】2014年1月22日 申請(qǐng)日期:2013年1月21日 優(yōu)先權(quán)日:2013年1月21日
【發(fā)明者】盧偉超, 李星, 趙智寶, 張穎, 姬銳鋒 申請(qǐng)人:Tcl集團(tuán)股份有限公司