小距離小于設(shè)定的距離范圍,則用戶(hù)輸入的手勢(shì)指令落在具有最小距離的九宮格觸點(diǎn)上;
[0074]當(dāng)觸點(diǎn)的感應(yīng)區(qū)為方形時(shí),計(jì)算用戶(hù)手指在觸摸屏上的接觸點(diǎn)坐標(biāo)介于最大和最小坐標(biāo)值之間的第一觸點(diǎn)感應(yīng)區(qū),手勢(shì)指令落第一感應(yīng)區(qū)內(nèi)的九宮格觸點(diǎn)上。
[0075]另外,上述步驟接收并存儲(chǔ)手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列,可以包括:
[0076]當(dāng)所述觸點(diǎn)軌跡序列元素?cái)?shù)為O時(shí),則確定接收到的觸點(diǎn)為第一觸點(diǎn),將所述第一觸點(diǎn)的觸點(diǎn)ID添加至所述觸點(diǎn)軌跡序列中,繪制并存儲(chǔ)所述第一觸點(diǎn)。
[0077]當(dāng)所述觸點(diǎn)軌跡序列的元素?cái)?shù)至少為I時(shí),則判斷所述接收到的觸點(diǎn)與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)之間是否存在觸點(diǎn)軌跡跨越,如果不存在觸點(diǎn)軌跡跨越,則確定接收到的觸點(diǎn)為當(dāng)前觸點(diǎn);如果存在觸點(diǎn)軌跡跨越,則將跨越的觸點(diǎn)和所述接收到的觸點(diǎn)依次作為當(dāng)前觸點(diǎn),判斷當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)ID是否相等。如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)ID相等,則不做任何操作;如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)ID不相等,則將當(dāng)前觸點(diǎn)添加在所述軌跡點(diǎn)序列的末尾,并繪制所述當(dāng)前觸點(diǎn),以及繪制當(dāng)前觸點(diǎn)和所述軌跡點(diǎn)序列中前一觸點(diǎn)之間的軌跡線。
[0078]當(dāng)所述觸點(diǎn)軌跡序列的元素?cái)?shù)至少為2時(shí),還需判斷當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中末尾倒數(shù)第二個(gè)觸點(diǎn)ID是否相等。即當(dāng)所述觸點(diǎn)軌跡序列的元素?cái)?shù)至少為2時(shí),判斷所述接收到的觸點(diǎn)與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)之間是否存在觸點(diǎn)軌跡跨越,如果不存在觸點(diǎn)軌跡跨越,則確定接收到的觸點(diǎn)為當(dāng)前觸點(diǎn);如果存在觸點(diǎn)軌跡跨越,則將跨越的觸點(diǎn)和所述接收到的觸點(diǎn)依次作為當(dāng)前觸點(diǎn),判斷當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)ID是否相等。如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)ID相等,則不做任何操作;如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)ID不相等,則將當(dāng)前觸點(diǎn)添加在所述軌跡點(diǎn)序列的末尾,并繪制所述當(dāng)前觸點(diǎn),以及繪制當(dāng)前觸點(diǎn)和所述軌跡點(diǎn)序列中前一觸點(diǎn)之間的軌跡線。在此基礎(chǔ)上,還需判斷當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中末尾倒數(shù)第二個(gè)觸點(diǎn)ID是否相等。如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中末尾倒數(shù)第二個(gè)的觸點(diǎn)ID相等,則清除所述軌跡點(diǎn)序列中末尾的兩個(gè)觸點(diǎn),并清除與所述軌跡點(diǎn)序列中末尾的兩個(gè)觸點(diǎn)之間的軌跡線。如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾和末尾倒數(shù)第二個(gè)的觸點(diǎn)ID都不相等,則將當(dāng)前觸點(diǎn)添加在所述軌跡點(diǎn)序列的末尾,并繪制所述當(dāng)前觸點(diǎn),以及繪制當(dāng)前觸點(diǎn)和所述軌跡點(diǎn)序列中前一觸點(diǎn)之間的軌跡線。
[0079]進(jìn)一步的,當(dāng)觸點(diǎn)軌跡序列元素?cái)?shù)為O時(shí),即確定接收到的下一個(gè)觸點(diǎn)為第一觸點(diǎn),則調(diào)用軌跡序列添加模塊,軌跡序列添加模塊用于儲(chǔ)存與顯示用戶(hù)已在觸摸屏移動(dòng)而形成的九宮格觸點(diǎn)軌跡序列,存儲(chǔ)和顯示方式為,將輸入的九宮格觸點(diǎn)的ID添加到存儲(chǔ)模塊的九宮格觸點(diǎn)序列中,并繪制最后一個(gè)九宮格觸點(diǎn)與其前一個(gè)九宮格觸點(diǎn)之間的軌跡線。
[0080]當(dāng)所述觸點(diǎn)軌跡序列的元素?cái)?shù)至少為I時(shí),則判斷所述接收到的觸點(diǎn)與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)之間是否存在觸點(diǎn)軌跡跨越。如果不存在觸點(diǎn)軌跡跨越,則確定接收到的觸點(diǎn)為當(dāng)前觸點(diǎn);如果存在觸點(diǎn)軌跡跨越,則將跨越的觸點(diǎn)和所述接收到的觸點(diǎn)依次作為當(dāng)前觸點(diǎn),判斷當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)ID是否相等。如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)ID相等,則不做任何操作;如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾的觸點(diǎn)ID不相等,則調(diào)用軌跡序列添加模塊構(gòu)建觸點(diǎn)軌跡序列。
[0081]當(dāng)所述觸點(diǎn)軌跡序列的元素?cái)?shù)至少為2時(shí),還需判斷當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中末尾倒數(shù)第二個(gè)觸點(diǎn)ID是否相等。如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中末尾倒數(shù)第二個(gè)的觸點(diǎn)ID相等,則調(diào)用軌跡序列刪除模塊,軌跡序列刪除模塊用于從存儲(chǔ)模塊的觸點(diǎn)序列中刪除末尾的兩個(gè)九宮格觸點(diǎn)ID,并在屏幕上清除觸點(diǎn)軌跡序列中末尾的兩個(gè)觸點(diǎn)的繪制,以及末尾的兩個(gè)觸點(diǎn)之間的軌跡線的繪制。如果當(dāng)前觸點(diǎn)的ID與所述軌跡點(diǎn)序列中最末尾和末尾倒數(shù)第二個(gè)的觸點(diǎn)ID都不相等,則將當(dāng)前觸點(diǎn)添加在所述軌跡點(diǎn)序列的末尾,并繪制所述當(dāng)前觸點(diǎn),以及繪制當(dāng)前觸點(diǎn)和所述軌跡點(diǎn)序列中前一觸點(diǎn)之間的軌跡線;
[0082]其中,觸點(diǎn)軌跡跨越的判斷基準(zhǔn)為:如果當(dāng)前觸點(diǎn)與觸點(diǎn)軌跡序列中最后一個(gè)觸點(diǎn)的ID都不等于5,并且當(dāng)前觸點(diǎn)與觸點(diǎn)軌跡序列中最后一個(gè)觸點(diǎn)的ID相加的和為偶數(shù),則認(rèn)為存在觸點(diǎn)軌跡跨越,并且被跨越的九宮格觸點(diǎn)ID為當(dāng)前觸點(diǎn)與觸點(diǎn)軌跡序列中最后一個(gè)觸點(diǎn)的ID相加后除以2得到的ID值。
[0083]步驟220:判斷九宮格觸點(diǎn)的狀態(tài)未發(fā)生改變的時(shí)間,或,用戶(hù)斷絕與觸摸屏之間接觸的時(shí)間是否超過(guò)設(shè)定時(shí)間,如果是,則完成手勢(shì)指令的輸入,然后繼續(xù)步驟230。
[0084]如果否,可以結(jié)束流程;或者跳轉(zhuǎn)至步驟110 ;或者語(yǔ)音提示,提示用戶(hù)重新輸入手勢(shì)指令。
[0085]步驟230:判斷手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列與預(yù)先存儲(chǔ)的觸點(diǎn)軌跡序列指令是否相符,如果是,則執(zhí)彳了步驟240,如果否,則執(zhí)彳了 250。
[0086]判斷手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列與預(yù)先存儲(chǔ)的觸點(diǎn)軌跡序列指令是否相符,包括:
[0087]當(dāng)同樣次序的觸點(diǎn)軌跡序列中的觸點(diǎn)ID與預(yù)先存儲(chǔ)的觸點(diǎn)軌跡序列指令中的觸點(diǎn)ID全部一致時(shí),則判斷手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列與預(yù)先存儲(chǔ)的觸點(diǎn)軌跡序列指令相符;
[0088]或者,
[0089]分別讀取手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列中相鄰兩個(gè)觸點(diǎn)ID,按照ID由小到大的關(guān)系構(gòu)建軌跡線的ID,并構(gòu)建所有軌跡線的第一 ID集合,當(dāng)?shù)谝?ID集合與預(yù)先構(gòu)建的已有序列中的第二軌跡線ID集合,當(dāng)?shù)谝?ID集合與第二軌跡線ID集合完全一致時(shí),則判斷手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列與預(yù)先存儲(chǔ)的觸點(diǎn)軌跡序列指令相符。
[0090]步驟240:根據(jù)手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列執(zhí)行相應(yīng)的導(dǎo)航操作程序。
[0091]步驟250:判斷導(dǎo)航系統(tǒng)是否處于設(shè)置環(huán)境,如果是,則根據(jù)當(dāng)前的觸點(diǎn)軌跡序列與程序操作進(jìn)行相關(guān)聯(lián);其中,設(shè)置環(huán)境指,從導(dǎo)航系統(tǒng)的設(shè)置操作中啟動(dòng)九宮格手勢(shì)操作模式。
[0092]如果否,可以結(jié)束流程;或者跳轉(zhuǎn)至步驟210;或者語(yǔ)音提示,提示用戶(hù)重新輸入手勢(shì)指令。
[0093]如果判斷導(dǎo)航系統(tǒng)處于設(shè)置環(huán)境,則將當(dāng)前觸點(diǎn)軌跡序列與程序操作進(jìn)行關(guān)聯(lián)。由用戶(hù)從存儲(chǔ)模塊中存儲(chǔ)的尚未被關(guān)聯(lián)的所有程序操作中選取需要關(guān)聯(lián)的程序操作,并將關(guān)聯(lián)結(jié)果存儲(chǔ)到存儲(chǔ)模塊中;如,在設(shè)置環(huán)境中,輸入的九宮格觸點(diǎn)序列為一經(jīng)過(guò)九宮格ID為1-4-7-8-9的L形序列,在存儲(chǔ)模塊中沒(méi)有與之對(duì)應(yīng)的程序操作,則可從尚未被關(guān)聯(lián)的所有操作中選取需要的關(guān)聯(lián)程序操作,例如關(guān)聯(lián)回家的路徑規(guī)劃導(dǎo)航。
[0094]如果手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列與預(yù)先存儲(chǔ)的觸點(diǎn)軌跡序列指令相符,則根據(jù)手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列執(zhí)行相應(yīng)的導(dǎo)航操作程序,如果不相符,進(jìn)一步的,導(dǎo)航系統(tǒng)還處于設(shè)置環(huán)境狀態(tài),則根據(jù)當(dāng)前的觸點(diǎn)軌跡序列與程序操作進(jìn)行相關(guān)聯(lián),因此,本發(fā)明實(shí)施例提供的方案,可以通過(guò)九宮格調(diào)用導(dǎo)航系統(tǒng)中的程序,還可以通過(guò)九宮格將觸點(diǎn)軌跡序列與程序操作進(jìn)行相關(guān)聯(lián)。
[0095]實(shí)施例三
[0096]參見(jiàn)圖3,本發(fā)明實(shí)施例提供一種導(dǎo)航系統(tǒng)手勢(shì)指令輸入方法,包括以下步驟:
[0097]步驟300:在接收到啟動(dòng)九宮格手勢(shì)操作模式的指令后,對(duì)觸摸屏的屏幕和內(nèi)存進(jìn)行初始化。
[0098]對(duì)觸摸屏的屏幕和內(nèi)存進(jìn)行初始化包括:清空存儲(chǔ)模塊中當(dāng)前九宮格觸點(diǎn)軌跡序列,清除已繪制的觸點(diǎn)和軌跡線。
[0099]其中,存儲(chǔ)模塊用于存儲(chǔ)手勢(shì)輸入九宮格觸點(diǎn)軌跡序列,以及預(yù)先設(shè)定好觸點(diǎn)軌跡序列與程序操作之間的關(guān)聯(lián)關(guān)系。
[0100]步驟310:在九宮格手勢(shì)指令模式下,感應(yīng)用戶(hù)的手勢(shì)指令,接收并存儲(chǔ)手勢(shì)指令對(duì)應(yīng)的觸點(diǎn)軌跡序列。
[0101]此步驟與上述步驟210相同,在此不做贅述。
[0102]步驟320:判斷用戶(hù)是否完成九宮格手勢(shì)指令的