国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于手勢(shì)控制3D模型的系統(tǒng)及方法與流程

      文檔序號(hào):11707286閱讀:331來(lái)源:國(guó)知局
      一種基于手勢(shì)控制3D模型的系統(tǒng)及方法與流程

      本發(fā)明涉及3d模型控制領(lǐng)域,更具體地說(shuō),涉及一種基于手勢(shì)控制3d模型的系統(tǒng)及方法。



      背景技術(shù):

      在pc機(jī)中的3d模型一般通過(guò)鼠標(biāo)來(lái)控制,即鼠標(biāo)的左按鍵、右按鍵以及中間滾輪來(lái)分別控制3d模型的平移、旋轉(zhuǎn)以及縮放。隨著3d模型在觸摸屏的設(shè)備中迅速發(fā)展,人們希望在觸摸屏中能夠同樣便捷地對(duì)3d模型進(jìn)行操作。由于當(dāng)前針對(duì)觸摸屏的3d模型操作引擎只支持兩種:一種是單指在屏幕移動(dòng),另一種是雙指在屏幕上移動(dòng);但如果要同時(shí)支持平移、旋轉(zhuǎn)、縮放三種常用的操作,僅靠?jī)煞N手勢(shì)是做不到的。因此,當(dāng)前的觸摸屏中對(duì)3d模型進(jìn)行操作一般有兩類(lèi)組合:一類(lèi)是以一種是單指在屏幕移動(dòng)以控制3d模型平移以及雙指在屏幕上移動(dòng)以控制3d模型縮放,另一類(lèi)是以一種是單指在屏幕移動(dòng)以控制3d模型平旋轉(zhuǎn)以及雙指在屏幕上移動(dòng)以控制3d模型縮放。無(wú)法同時(shí)支持對(duì)3d模型的平移、旋轉(zhuǎn)以及縮放三種操作。

      中國(guó)專(zhuān)利申請(qǐng),申請(qǐng)?zhí)?01510063528.8,公開(kāi)日2016年10月5日,以及申請(qǐng)?zhí)?01210063146.1,公開(kāi)日2012年09月12日,公開(kāi)了一種智能穿戴設(shè)備及基于智能穿戴設(shè)備實(shí)現(xiàn)手勢(shì)輸入的方法,所述智能穿戴設(shè)備為視覺(jué)類(lèi)智能穿戴設(shè)備,在智能穿戴設(shè)備的顯示器為透明的情況下,所述方法包括:獲取在預(yù)置檢測(cè)區(qū)中位移的手相對(duì)于智能穿戴設(shè)備的第一空間位置信息,若根據(jù)所述第一空間位置信息判定符合觸發(fā)任一預(yù)設(shè)功能的條件,則觸發(fā)實(shí)現(xiàn)對(duì)應(yīng)的功能,以完成基于智能穿戴設(shè)備的手勢(shì)輸入,以此可豐富智能穿戴設(shè)備的功能,增加智能穿戴設(shè)備的應(yīng)用場(chǎng)合,更好地實(shí)現(xiàn)基于智能穿戴設(shè)備與其他設(shè)備之間進(jìn)行交互,且操作方式可以脫離觸摸屏對(duì)3d模型進(jìn)行控制。但此方案有如下缺陷:1)此方案需要借助額外的預(yù)置傳感器以感知具體的手勢(shì),此增加了額外的成本;2)此方案需要通過(guò)攝像頭的不斷地截圖進(jìn)行比對(duì)以控制手勢(shì)的精確位移,因圖像比較方案會(huì)導(dǎo)致精確度以及性能都會(huì)大大降低,且需要消耗很大的內(nèi)存。

      中國(guó)專(zhuān)利申請(qǐng),申請(qǐng)?zhí)?01010257613.5,公開(kāi)日2012年03月14日,公開(kāi)了通過(guò)電子設(shè)備屏幕的手勢(shì)控制設(shè)備操作的方法和裝置,所述的方法包括:檢測(cè)手指在電子設(shè)備屏幕上針對(duì)多個(gè)操作對(duì)象其中之一的拖動(dòng)手勢(shì)的起始點(diǎn);跟隨該拖動(dòng)手勢(shì),在預(yù)設(shè)軌跡上移動(dòng)該多個(gè)操作對(duì)象;檢測(cè)該拖動(dòng)手勢(shì)的結(jié)束點(diǎn),讓該多個(gè)操作對(duì)象隨著該拖動(dòng)手勢(shì)的結(jié)束停留在當(dāng)前的預(yù)停留位置。此可實(shí)現(xiàn)對(duì)觸摸屏內(nèi)的對(duì)像的平移功能,并形成一定的拖拽效果,但此方案無(wú)法滿(mǎn)足同時(shí)支持對(duì)3d模型的平移、旋轉(zhuǎn)以及縮放三種操作。

      中國(guó)專(zhuān)利申請(qǐng),申請(qǐng)?zhí)?01110046519.x,公開(kāi)日2011年07月13日,公開(kāi)了用于觸摸顯示器的邊框手勢(shì),所述的方法包括:使用設(shè)備的邊框來(lái)擴(kuò)展可通過(guò)使用所謂的邊框手勢(shì)來(lái)訪問(wèn)的功能。在至少某些實(shí)施例中,可以借助邊框使用屏幕外運(yùn)動(dòng)來(lái)通過(guò)邊框手勢(shì)創(chuàng)建屏幕輸入。邊框手勢(shì)可以包括單手指邊框手勢(shì)、多手指/同手邊框手勢(shì)、和/或多手指異手邊框手勢(shì)。此方案可以實(shí)現(xiàn)基于觸摸顯器的邊框的操作手勢(shì)以控制圖片、游戲物體等從觸摸屏移入或移出,但此方案無(wú)法滿(mǎn)足同時(shí)支持對(duì)3d模型的平移、旋轉(zhuǎn)以及縮放三種操作。

      中國(guó)專(zhuān)利申請(qǐng),申請(qǐng)?zhí)?01410139930.5,公開(kāi)日2014年09月24日,公開(kāi)了一種基于手勢(shì)控制屏幕畫(huà)面移動(dòng)的方法,所述的方法包括:通過(guò)觸摸屏獲取至少一接觸式手勢(shì);檢測(cè)并識(shí)別所述接觸式手勢(shì)是否與至少一預(yù)設(shè)條件相符;若相符,則響應(yīng)于所述預(yù)設(shè)條件,所述觸摸屏的實(shí)時(shí)畫(huà)面將以屏幕中點(diǎn)為軸心自動(dòng)旋轉(zhuǎn)一預(yù)設(shè)度數(shù)轉(zhuǎn)化為至少一預(yù)設(shè)畫(huà)面。此方案可以有效解決用戶(hù)無(wú)法自由切換屏幕橫豎屏顯示模式的問(wèn)題,實(shí)現(xiàn)隨時(shí)由用戶(hù)自主切換屏幕橫豎屏顯示模式的功效,但此方案無(wú)法滿(mǎn)足同時(shí)支持對(duì)3d模型的平移、旋轉(zhuǎn)以及縮放三種操作。

      中國(guó)專(zhuān)利申請(qǐng),申請(qǐng)?zhí)?01510731771.2,公開(kāi)日2016年02月17日,公開(kāi)了一種采用手勢(shì)縮放屏幕圖像的方法,所述的方法包括::檢測(cè)手掌形態(tài);當(dāng)所述手掌形態(tài)從第一手型變換為第二手型時(shí),將屏幕圖像設(shè)置為可縮放狀態(tài);若所述手掌形態(tài)保持為第二手型,并在預(yù)設(shè)方向上發(fā)生位移,則放大或縮小所述屏幕圖像,此方案是通過(guò)檢測(cè)手掌形態(tài)控制圖像的縮放,但此方案無(wú)法滿(mǎn)足同時(shí)支持對(duì)3d模型的平移、旋轉(zhuǎn)以及縮放三種操作。



      技術(shù)實(shí)現(xiàn)要素:

      1.要解決的技術(shù)問(wèn)題

      針對(duì)現(xiàn)有技術(shù)中存在的兩指間距變化以控制3d模型的縮放;無(wú)法同時(shí)支持平移、旋轉(zhuǎn)、縮放三種常用操作的問(wèn)題,本發(fā)明提供了一種基于手勢(shì)控制3d模型的系統(tǒng)及方法。它可以實(shí)現(xiàn)只支持兩根手指的操作引擎的平移、旋轉(zhuǎn)、縮放三種常用的操作的實(shí)現(xiàn)。

      2.技術(shù)方案

      本發(fā)明的目的通過(guò)以下技術(shù)方案實(shí)現(xiàn)。

      一種基于手勢(shì)控制3d模型的系統(tǒng),包括,

      屏幕事件捕捉器,實(shí)時(shí)捕捉觸摸屏上手指事件,并實(shí)時(shí)獲取在屏幕上手指的個(gè)數(shù)及對(duì)應(yīng)手指在屏幕上的坐標(biāo);

      手勢(shì)處理器,根據(jù)從屏幕事件捕捉器獲取的手指?jìng)€(gè)數(shù)、事件、屏幕坐標(biāo)根據(jù)計(jì)算出的屏幕坐標(biāo)位移來(lái)控制3d模型的具體的變化向量;

      3d模型渲染器,根據(jù)操作指令及從手勢(shì)處理器獲取的3d模型的變化向量來(lái)控制3d模型在屏幕上的展示;

      控制指令映射器,記錄手勢(shì)對(duì)應(yīng)的3d模型控制指令;

      屏幕事件捕捉器將捕捉到的手指信息傳遞給手勢(shì)處理器,手勢(shì)處理器將計(jì)算后的變化向量傳輸給3d模型渲染器,3d模型渲染器根據(jù)控制指令映射器所對(duì)應(yīng)的控制指令,控制屏幕上的顯示。

      更進(jìn)一步的,所述的屏幕事件捕捉器的手指事件為手指在觸摸屏上操作的事件,包括但不限于手指點(diǎn)擊屏幕、手指在屏幕上滑動(dòng)、以及手指離開(kāi)屏幕事件。手指支持方式多,更方便識(shí)別。

      更進(jìn)一步的,控制指令映射器中記錄一個(gè)手指靜止,另一個(gè)手指滑動(dòng)的手勢(shì)對(duì)應(yīng)的3d模型控制指令,此控制指令包括:控制3d模型平移、控制3d模型旋轉(zhuǎn)。指令可控制方式多樣,方便快捷。

      更進(jìn)一步的,控制指令映射器為3d模型渲染器提供“根據(jù)手勢(shì)查詢(xún)對(duì)應(yīng)的控制指令”的服務(wù)。獲取指令直接,獲取速度快,處理效率高。

      一種基于手勢(shì)控制3d模型的方法,步驟如下:

      步驟1、屏幕事件捕捉器地從觸摸屏中獲取事件要素;

      步驟2、手勢(shì)處理器檢測(cè)手指?jìng)€(gè)數(shù),根據(jù)手指?jìng)€(gè)數(shù)判斷觸摸在屏上的手指數(shù)是否等于2,如果否,則結(jié)束流程;如果是,則繼續(xù)向下處理;

      步驟3、手勢(shì)處理器檢測(cè)手勢(shì),從手指事件以及對(duì)應(yīng)手指的屏幕坐標(biāo)中分別對(duì)其中兩個(gè)手指進(jìn)行判斷,如果兩個(gè)手指皆為移動(dòng),則結(jié)束流程;如果兩個(gè)手指皆為靜止,則返回至步驟1;如果一個(gè)手指靜止一個(gè)手指移動(dòng),則繼續(xù)向下處理;

      步驟4、手勢(shì)處理器計(jì)算手指移動(dòng)后的坐標(biāo)偏移向量;

      步驟5、手勢(shì)處理器計(jì)算3d模型控制值;

      步驟6、3d模型渲染器對(duì)3d模型進(jìn)行繪制,從控制指令映射器中獲取“一個(gè)手指靜止,另一個(gè)手指滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令,如果控制指令為移動(dòng),則對(duì)3d模型進(jìn)行移動(dòng)操作;如果控制指令為旋轉(zhuǎn),則對(duì)3d模型進(jìn)行旋轉(zhuǎn)操作。

      更進(jìn)一步的,步驟1中,其事件要素包括手指?jìng)€(gè)數(shù)、對(duì)應(yīng)手指事件、對(duì)應(yīng)手指的屏幕坐標(biāo)。

      更進(jìn)一步的,步驟3中,手指移動(dòng)判斷通過(guò)抖動(dòng)值確定,手指在屏幕上的坐標(biāo)與前一次坐標(biāo)相減的位移值小于抖動(dòng)值即認(rèn)為此手指為靜止,否則認(rèn)為手指為移動(dòng)。

      更進(jìn)一步的,步驟4中,將移動(dòng)手指在屏幕上的本次坐標(biāo)與前一次坐標(biāo)相減,得到此手指的在屏幕的坐標(biāo)偏移向量,即,在x軸上的偏移向量為δx,在y軸上的偏移向量為δy,此向量具有方向性,即正方向和負(fù)方向,此向量的方向設(shè)為γ。

      更進(jìn)一步的,步驟5,計(jì)算3d模型控制具體方法如下,將偏移向量δx乘以一個(gè)比值kx,得到控制值vx;將偏移向量δy乘以一個(gè)比值ky,得到控制值vy;比值kx、ky為任意實(shí)數(shù),根據(jù)不同屏幕設(shè)定不同。設(shè)置方式簡(jiǎn)單,移動(dòng)方便。

      更進(jìn)一步的,步驟6,具體控制方式如下,取控制值vx、vy的絕對(duì)值,即以控制值vx、vy對(duì)應(yīng)的正實(shí)數(shù)來(lái)控制3d渲染器對(duì)3d模型的移動(dòng)位置或旋轉(zhuǎn)角度,以向量方向γ控制3d渲染器在屏幕中的移動(dòng)方向,此移動(dòng)方向控制可以但不限于:正方向?yàn)橄蛴一蛳蛏掀揭疲?fù)方向?yàn)橄蜃蠡蛳蛳缕揭?;以向量方向γ控?d渲染器在屏幕中旋轉(zhuǎn)方向,此旋轉(zhuǎn)方向控制可以但不限于:正方向?yàn)槟鏁r(shí)針旋轉(zhuǎn),負(fù)方向?yàn)轫槙r(shí)針。設(shè)置方式簡(jiǎn)單,移動(dòng)方便。

      3.有益效果

      相比于現(xiàn)有技術(shù),本發(fā)明的優(yōu)點(diǎn)在于:

      (1)本發(fā)明的一種基于手勢(shì)控制3d模型的系統(tǒng)及方法,它可以實(shí)現(xiàn)一個(gè)手指靜止,另一個(gè)手指滑動(dòng)的手勢(shì)操作方法,最多通過(guò)2根手指就可以完成對(duì)3d模型的平移、旋轉(zhuǎn)和縮放,即三種手勢(shì):一根手指滑動(dòng)、兩根手指皆動(dòng)、一根手指動(dòng)一根手指不動(dòng),分別控制平移、旋轉(zhuǎn)和縮放,突破了現(xiàn)有手勢(shì)操作方法2根手指不能完成上述功能的缺點(diǎn),具有了新的效果;

      (2)針對(duì)只支持兩種手勢(shì)的操作引擎,本方案可以實(shí)現(xiàn)平移、旋轉(zhuǎn)、縮放三種常用的操作,利用率高,降低了操作引擎的成本,效率高;

      (3)本發(fā)明采用了手勢(shì)處理器全新機(jī)制,根據(jù)從屏幕事件捕捉器獲取的手指?jìng)€(gè)數(shù)、事件、屏幕坐標(biāo)根據(jù)計(jì)算出的屏幕坐標(biāo)位移來(lái)控制3d模型的具體的變化向量,通過(guò)向量的變化判斷手指的移動(dòng),確定手指的手指變化;

      (4)手勢(shì)處理器檢測(cè)手勢(shì)時(shí)候加入抖動(dòng)值的判斷,抖動(dòng)值一般是預(yù)先設(shè)定的,一般抖動(dòng)值設(shè)置為2毫米,此值可以根據(jù)不同的屏而設(shè)置不同的值,屏幕大設(shè)定值相應(yīng)的大,屏幕小設(shè)定值相應(yīng)的小,防止手指抖動(dòng)導(dǎo)致誤判;

      (5)控制指令映射器不僅僅給出對(duì)應(yīng)指令,在必要時(shí)候,為3d模型渲染器提供“根據(jù)手勢(shì)查詢(xún)對(duì)應(yīng)的控制指令”的服務(wù),查詢(xún)速度快效果好;

      (6)本發(fā)明的3d模型控制方法,控制簡(jiǎn)單,判斷速度快,成本低,易于在移動(dòng)互聯(lián)網(wǎng)中迅速推廣。

      附圖說(shuō)明

      圖1為本發(fā)明的手勢(shì)示意圖;

      圖2為手勢(shì)操作3d模型系統(tǒng)的模塊圖;

      圖3為本發(fā)明的控制流程圖。

      具體實(shí)施方式

      下面結(jié)合說(shuō)明書(shū)附圖和具體的實(shí)施例,對(duì)本發(fā)明作詳細(xì)描述。

      實(shí)施例1

      本發(fā)明構(gòu)建了一種新的手勢(shì)控制系統(tǒng),基于一個(gè)手指靜止,另一個(gè)手指滑動(dòng)的手勢(shì)方法,以滑動(dòng)手指的相對(duì)坐標(biāo)來(lái)控制3d模型的平移或旋轉(zhuǎn),如圖2所示,一種基于手勢(shì)控制3d模型的系統(tǒng),包括屏幕事件捕捉器,實(shí)時(shí)捕捉觸摸屏上手指事件,并實(shí)時(shí)獲取在屏幕上手指的個(gè)數(shù),及對(duì)應(yīng)手指在屏幕上的坐標(biāo);并將此所捕捉到的手指信息傳遞給手勢(shì)處理器;所謂手指事件就是手指在觸摸屏上操作的事件,此事件包括但不限于手指點(diǎn)擊屏幕、手指在屏幕上滑動(dòng)、手指離開(kāi)屏幕等事件;

      手勢(shì)處理器,根據(jù)從屏幕事件捕捉器獲取的手指?jìng)€(gè)數(shù)、事件、屏幕坐標(biāo)根據(jù)計(jì)算出的屏幕坐標(biāo)位移來(lái)控制3d模型的具體的變化向量;并將此計(jì)算后的變化向量傳輸給3d模型渲染器;

      3d模型渲染器,根據(jù)操作指令及從手勢(shì)處理器獲取的3d模型的變化向量來(lái)控制3d模型在屏幕上的展示;

      控制指令映射器,記錄手勢(shì)對(duì)應(yīng)的3d模型控制指令;控制指令映射器為3d模型渲染器提供“根據(jù)手勢(shì)查詢(xún)對(duì)應(yīng)的控制指令”的服務(wù),控制指令映射器中記錄一個(gè)手指靜止,另一個(gè)手指滑動(dòng)的手勢(shì)對(duì)應(yīng)的3d模型控制指令,此控制指令包括:對(duì)3d模型平移、對(duì)3d模型旋轉(zhuǎn)。

      屏幕事件捕捉器將捕捉到的手指信息傳遞給手勢(shì)處理器,手勢(shì)處理器將計(jì)算后的變化向量傳輸給3d模型渲染器,3d模型渲染器控制屏幕上的顯示。

      通過(guò)上述系統(tǒng),可以實(shí)現(xiàn)對(duì)3d模型進(jìn)行手勢(shì)的直接控制,基于一個(gè)手指靜止,另一個(gè)手指滑動(dòng)的手勢(shì)方法,控制3d模型的平移、旋轉(zhuǎn)。

      實(shí)施例2

      如圖1、3所示,一種基于手勢(shì)控制3d模型的方法,步驟如下:

      步驟1、屏幕事件捕捉器地從觸摸屏中獲取事件要素;事件要素包括手指?jìng)€(gè)數(shù)、對(duì)應(yīng)手指事件、對(duì)應(yīng)手指的屏幕坐標(biāo)。

      步驟2、手勢(shì)處理器檢測(cè)手指?jìng)€(gè)數(shù),根據(jù)手指?jìng)€(gè)數(shù)判斷觸摸在屏上的手指數(shù)是否等于2,如果否,則結(jié)束流程;如果是,則繼續(xù)向下處理;

      步驟3、手勢(shì)處理器檢測(cè)手勢(shì),從手指事件以及對(duì)應(yīng)手指的屏幕坐標(biāo)中分別對(duì)其中兩個(gè)手指進(jìn)行判斷,如果兩個(gè)手指皆為移動(dòng),則結(jié)束流程;如果兩個(gè)手指皆為靜止,則返回至步驟1;如果一個(gè)手指靜止一個(gè)手指移動(dòng),則繼續(xù)向下處理;手指移動(dòng)判斷通過(guò)抖動(dòng)值確定,手指在屏幕上的坐標(biāo)與前一次坐標(biāo)相減的位移值小于抖動(dòng)值即認(rèn)為此手指為靜止,否則認(rèn)為手指為移動(dòng)。抖動(dòng)值一般是預(yù)先設(shè)定的,一般抖動(dòng)值設(shè)置為2毫米,此值可以根據(jù)不同的屏而設(shè)置不同的值,屏幕大設(shè)定值相應(yīng)的大,屏幕小設(shè)定值相應(yīng)的小,防止手指抖動(dòng)導(dǎo)致誤判。

      步驟4、手勢(shì)處理器計(jì)算手指移動(dòng)后的坐標(biāo)偏移向量;將移動(dòng)手指在屏幕上的本次坐標(biāo)與前一次坐標(biāo)相減,得到此手指的在屏幕的坐標(biāo)偏移向量,即,在x軸上的偏移向量為δx,在y軸上的偏移向量為δy,此向量具有方向性,即正方向和負(fù)方向,此向量的方向設(shè)為γ。

      步驟5、手勢(shì)處理器計(jì)算3d模型控制值;計(jì)算3d模型控制具體方法如下,將偏移向量δx乘以一個(gè)比值kx,得到控制值vx;將偏移向量δy乘以一個(gè)比值ky,得到控制值vy;比值kx、ky為任意實(shí)數(shù),根據(jù)不同屏幕設(shè)定不同。

      步驟6、3d模型渲染器對(duì)3d模型進(jìn)行繪制,從控制指令映射器中獲取“一個(gè)手指靜止,另一個(gè)手指滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令,如果控制指令為移動(dòng),則對(duì)3d模型進(jìn)行移動(dòng)操作;如果控制指令為旋轉(zhuǎn),則對(duì)3d模型進(jìn)行旋轉(zhuǎn)操作。具體控制方式如下,取控制值vx、vy的絕對(duì)值,即以控制值vx、vy對(duì)應(yīng)的正實(shí)數(shù)來(lái)控制3d渲染器對(duì)3d模型的移動(dòng)位置或旋轉(zhuǎn)角度,以向量方向γ控制3d渲染器在屏幕中的移動(dòng)方向,此移動(dòng)方向控制可以但不限于:正方向?yàn)橄蛴一蛳蛏掀揭?,?fù)方向?yàn)橄蜃蠡蛳蛳缕揭?;以向量方向γ控?d渲染器在屏幕中旋轉(zhuǎn)方向,此旋轉(zhuǎn)方向控制可以但不限于:正方向?yàn)槟鏁r(shí)針旋轉(zhuǎn),負(fù)方向?yàn)轫槙r(shí)針。

      完成對(duì)3d模型的相應(yīng)操作,操作快捷方便,效率高。

      實(shí)施例3

      本3d模型控制系統(tǒng),還包括一個(gè)手指靜止一個(gè)手指滑動(dòng)的手勢(shì)控制3d模型平移,單指移動(dòng)的手勢(shì)控制3d模型旋轉(zhuǎn),雙指同時(shí)移動(dòng)的手勢(shì)控制3d模型縮放,具體實(shí)施方式如下:

      控制指令映射器:記錄手勢(shì)對(duì)應(yīng)的3d模型控制指令的對(duì)應(yīng)關(guān)系,即:“一個(gè)手指靜止,另一個(gè)手指滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令為3d模型平移,“僅有一個(gè)手指且此手指滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令為3d模型旋轉(zhuǎn),“兩個(gè)手指同時(shí)滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令為3d模型縮放;

      步驟1、屏幕事件捕捉器地從觸摸屏中獲取事件要素,其事件要素包括:手指?jìng)€(gè)數(shù)、對(duì)應(yīng)手指事件、對(duì)應(yīng)手指的屏幕坐標(biāo);

      步驟2、手勢(shì)處理器檢測(cè)手指?jìng)€(gè)數(shù);根據(jù)手指?jìng)€(gè)數(shù)判斷觸摸在屏上的手指數(shù)是否等于2,如果手指數(shù)為1且手指移動(dòng),則執(zhí)行3d模型的平移邏輯,因?yàn)槭种笖?shù)為1且手指移動(dòng)的手勢(shì)不是本發(fā)明的創(chuàng)新部分,因此此處不作詳述;如果手指數(shù)為2,則繼續(xù)執(zhí)行步驟3;否則結(jié)束流程;

      步驟3、手勢(shì)處理器檢測(cè)手勢(shì);從手指事件以及對(duì)應(yīng)手指的屏幕坐標(biāo)中分別對(duì)其中兩個(gè)手指進(jìn)行判斷:本手指在屏幕上的本次坐標(biāo)與前一次坐標(biāo)相減的位移值小于抖動(dòng)值2毫米,即認(rèn)為此手指為靜止,否則認(rèn)為手指為移動(dòng)。如果兩個(gè)手指皆為移動(dòng),則執(zhí)行3d模型的縮放邏輯;如果兩個(gè)手指皆為靜止,則返回至步驟1;如果一個(gè)手指靜止一個(gè)手指移動(dòng),則繼續(xù)向下處理;

      步驟4、手勢(shì)處理器計(jì)算手指移動(dòng)后的坐標(biāo)偏移向量,將移動(dòng)手指在屏幕上的本次坐標(biāo)與前一次坐標(biāo)相減,得到此手指的在屏幕的坐標(biāo)偏移向量,即,在x軸上的偏移向量為δx,在y軸上的偏移向量為δy,此向量都是帶方向的,即正方向和負(fù)方向,假設(shè)此向量的方向?yàn)棣茫?/p>

      步驟5、手勢(shì)處理器計(jì)算3d模型控制值,將偏移向量δx乘以一個(gè)比值kx,得到控制值vx;將偏移向量δy乘以一個(gè)比值ky,得到控制值vy;比值kx、ky可以是任意實(shí)數(shù);

      步驟6、3d模型渲染器對(duì)3d模型進(jìn)行繪制;取控制值vx、vy的絕對(duì)值,即以控制值vx、vy對(duì)應(yīng)的正實(shí)數(shù)來(lái)控制3d渲染器對(duì)3d模型的移動(dòng)位置,以向量方向γ控制3d渲染器在屏幕中的移動(dòng)方向,此移動(dòng)方向控制可以但不限于:正方向?yàn)橄蛴一蛳蛏掀揭?,?fù)方向?yàn)橄蜃蠡蛳蛳缕揭?;從控制指令映射器中獲取“一個(gè)手指靜止,另一個(gè)手指滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令,此控制指令為移動(dòng),則對(duì)3d模型進(jìn)行移動(dòng)操作。

      實(shí)施例4

      本3d模型控制系統(tǒng),還包括一個(gè)手指靜止一個(gè)手指滑動(dòng)的手勢(shì)控制3d模型旋轉(zhuǎn),單指移動(dòng)的手勢(shì)控制3d模型平移,雙指同時(shí)移動(dòng)的手勢(shì)控制3d模型縮放,具體實(shí)施方式如下:

      控制指令映射器:記錄手勢(shì)對(duì)應(yīng)的3d模型控制指令的對(duì)應(yīng)關(guān)系,即:“一個(gè)手指靜止,另一個(gè)手指滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令為3d模型旋轉(zhuǎn),“僅有一個(gè)手指且此手指滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令為3d模型平移,“兩個(gè)手指同時(shí)滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令為3d模型縮放;

      步驟1、屏幕事件捕捉器地從觸摸屏中獲取事件要素,其事件要素包括:手指?jìng)€(gè)數(shù)、對(duì)應(yīng)手指事件、對(duì)應(yīng)手指的屏幕坐標(biāo);

      步驟2、手勢(shì)處理器檢測(cè)手指?jìng)€(gè)數(shù);根據(jù)手指?jìng)€(gè)數(shù)判斷觸摸在屏上的手指數(shù)是否等于2,如果手指數(shù)為1且手指移動(dòng),則執(zhí)行3d模型的旋轉(zhuǎn)邏輯;如果手指數(shù)為2,則繼續(xù)執(zhí)行步驟3;否則結(jié)束流程;

      步驟3、手勢(shì)處理器檢測(cè)手勢(shì);從手指事件以及對(duì)應(yīng)手指的屏幕坐標(biāo)中分別對(duì)其中兩個(gè)手指進(jìn)行判斷:本手指在屏幕上的本次坐標(biāo)與前一次坐標(biāo)相減的位移值小于抖動(dòng)值2毫米,即認(rèn)為此手指為靜止,否則認(rèn)為手指為移動(dòng);如果兩個(gè)手指皆為移動(dòng),則執(zhí)行3d模型的縮放邏輯;如果兩個(gè)手指皆為靜止,則返回至步驟1;如果一個(gè)手指靜止一個(gè)手指移動(dòng),則繼續(xù)向下處理;

      步驟4、手勢(shì)處理器計(jì)算手指移動(dòng)后的坐標(biāo)偏移向量;將移動(dòng)手指在屏幕上的本次坐標(biāo)與前一次坐標(biāo)相減,得到此手指的在屏幕的坐標(biāo)偏移向量,即,在x軸上的偏移向量為δx,在y軸上的偏移向量為δy,此向量都是帶方向的,即正方向和負(fù)方向,假設(shè)此向量的方向?yàn)棣茫?/p>

      步驟5、手勢(shì)處理器計(jì)算3d模型控制值。將偏移向量δx乘以一個(gè)比值kx,得到控制值vx;將偏移向量δy乘以一個(gè)比值ky,得到控制值vy;比值kx、ky可以是任意實(shí)數(shù);

      步驟6、3d模型渲染器對(duì)3d模型進(jìn)行繪制;取控制值vx、vy的絕對(duì)值,即以控制值vx、vy對(duì)應(yīng)的正實(shí)數(shù)來(lái)控制3d渲染器對(duì)3d模型的旋轉(zhuǎn)角度,以向量方向γ控制3d渲染器在屏幕中的旋轉(zhuǎn)方向,此旋轉(zhuǎn)方向控制可以但不限于:正方向?yàn)槟鏁r(shí)針旋轉(zhuǎn),負(fù)方向?yàn)轫槙r(shí)針;從控制指令映射器中獲取“一個(gè)手指靜止,另一個(gè)手指滑動(dòng)”的手勢(shì)對(duì)應(yīng)的3d模型控制指令,此控制指令為旋轉(zhuǎn),則對(duì)3d模型進(jìn)行旋轉(zhuǎn)操作。

      以上示意性地對(duì)本發(fā)明創(chuàng)造及其實(shí)施方式進(jìn)行了描述,該描述沒(méi)有限制性,在不背離本發(fā)明的精神或者基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。附圖中所示的也只是本發(fā)明創(chuàng)造的實(shí)施方式之一,實(shí)際的結(jié)構(gòu)并不局限于此,權(quán)利要求中的任何附圖標(biāo)記不應(yīng)限制所涉及的權(quán)利要求。所以,如果本領(lǐng)域的普通技術(shù)人員受其啟示,在不脫離本創(chuàng)造宗旨的情況下,不經(jīng)創(chuàng)造性的設(shè)計(jì)出與該技術(shù)方案相似的結(jié)構(gòu)方式及實(shí)施例,均應(yīng)屬于本專(zhuān)利的保護(hù)范圍。此外,“包括”一詞不排除其他元件或步驟,在元件前的“一個(gè)”一詞不排除包括“多個(gè)”該元件。產(chǎn)品權(quán)利要求中陳述的多個(gè)元件也可以由一個(gè)元件通過(guò)軟件或者硬件來(lái)實(shí)現(xiàn)。第一,第二等詞語(yǔ)用來(lái)表示名稱(chēng),而并不表示任何特定的順序。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1