999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

OSG多點(diǎn)觸控自然用戶接口框架①

2017-03-27 09:36:09吳學(xué)毅
關(guān)鍵詞:定義用戶

吳學(xué)毅

?

OSG多點(diǎn)觸控自然用戶接口框架①

吳學(xué)毅

(西安理工大學(xué)印刷包裝與數(shù)字媒體學(xué)院, 西安 710048)

OSG多點(diǎn)觸控自然用戶接口框架是在Windows多點(diǎn)觸控技術(shù)基礎(chǔ)上, 將觸控事件的管理和處理與OSG的事件處理機(jī)制相結(jié)合, 形成了OSG的多點(diǎn)觸控運(yùn)行框架. 在與用戶交互過程中產(chǎn)生手指觸屏的原始數(shù)據(jù), 根據(jù)這些原始數(shù)據(jù)定義所需的手勢, 并將其與OSG中交互事件處理機(jī)制相結(jié)合, 完成利用多點(diǎn)觸控對三維場景的交互操作. 基于以上原理, 分析了三維用戶交互中主要的操作任務(wù), 定義了符合三維空間操作認(rèn)知的多點(diǎn)觸控交互手勢, 設(shè)計(jì)了相關(guān)手勢的識(shí)別算法, 并通過實(shí)例應(yīng)用的開發(fā)驗(yàn)證了這一原理和設(shè)計(jì)成果的正確性和可行性.

多點(diǎn)觸控; OSG; 自然用戶接口; 三維應(yīng)用; 手勢識(shí)別

自然用戶接口(Natural User Interface, NUI)是一種允許用戶使用來自于其他系統(tǒng)的知識(shí)、方法與系統(tǒng)進(jìn)行交互的用戶接口[1]. 多點(diǎn)觸控技術(shù)使得人與機(jī)器的交互變得更加便捷、自然, 已被廣泛作為平板電腦、智能手機(jī)等移動(dòng)設(shè)備很普遍的用戶接口[2], 近年來也被應(yīng)用于三維應(yīng)用的交互控制與操作. OSG(OpenSceneGraph, 簡稱OSG)作為一種先進(jìn)的開源三維圖形引擎, 因其具有優(yōu)異的場景圖組織、支持主流三維技術(shù)、移植性好、開發(fā)快速等特點(diǎn)而被廣泛地應(yīng)用于三維圖形開發(fā)領(lǐng)域[3].

多點(diǎn)觸控的研究主要集中在相關(guān)硬件設(shè)備的研制、手勢的定義、識(shí)別以及支持多點(diǎn)觸控軟件框架3個(gè)方面. 目前三個(gè)最流行的多點(diǎn)觸控軟件框架包括:開源框架TUIO(Tangible User Interface Objects), Microsoft的 Windows7 SDK和PQ labs多點(diǎn)觸控SDK[4]. TUIO為多點(diǎn)觸摸設(shè)備和軟件定義了一個(gè)通用的協(xié)議和API, 允許傳輸抽象的交互表面描述, 包括觸摸事件和物體狀態(tài). TUIO不提供手勢分析. Windows7的SDK和PQ labs僅提供了原始觸控?cái)?shù)據(jù)或者基本的手勢支持, 不足以應(yīng)對非常復(fù)雜的應(yīng)用. 人們在多點(diǎn)觸控手勢識(shí)別上進(jìn)行了大量研究, 如使用圖像處理進(jìn)行手勢識(shí)別[5]等, 在二維空間取得了較好成果, 但針對三維空間圖形應(yīng)用的技術(shù)尚不成熟[6]. 2011年OSG發(fā)布3.0版本開始支持多點(diǎn)觸控軟件框架,僅提供了窗口多點(diǎn)觸控功能注冊、多點(diǎn)觸控事件處理、多點(diǎn)觸控原始數(shù)據(jù)的相關(guān)類. 對于滿足復(fù)雜三維空間交互操作的多點(diǎn)觸控手勢定義和實(shí)現(xiàn)至今仍無完整支持.

本文主要研究了OSG中多點(diǎn)觸控自然用戶接口的應(yīng)用框架, 根據(jù)三維交互任務(wù)的需要分析了三維交互中所需的操作手勢, 結(jié)合對OSG中有關(guān)多點(diǎn)觸控原始數(shù)據(jù)的研究, 擴(kuò)展了OSG中的手勢識(shí)別類型, 利用OSG中事件處理機(jī)制和漫游器操作類, 實(shí)現(xiàn)了基于多點(diǎn)觸控的三維交互操作, 并結(jié)合應(yīng)用實(shí)例驗(yàn)證了上述框架的可行性、有效性和可擴(kuò)展性.

1 OSG多點(diǎn)觸控自然用戶接口框架

OSG是在Windows 7 SDK多點(diǎn)觸控框架的基礎(chǔ)上構(gòu)建了自己的多點(diǎn)觸控技術(shù)框架, 并完全繼承了Windows 7 SDK中WM_TOUCH消息處理機(jī)制和主要的函數(shù)[6,7]. 在此基礎(chǔ)上將多點(diǎn)觸控事件和原始觸控?cái)?shù)據(jù)引入OSG的事件隊(duì)列中進(jìn)行管理和處理, 并將多點(diǎn)觸控手勢轉(zhuǎn)變?yōu)槭髽?biāo)事件類型, 在OSG刷新每一幀時(shí)使用事件適配器處理相應(yīng)的事件, 完成三維場景對多點(diǎn)觸控事件的響應(yīng). 其多點(diǎn)觸控的框架如圖1所示, 完成了從交互事件觸發(fā)到交互結(jié)果顯示的封閉處理.

圖1 OSG多點(diǎn)觸控結(jié)構(gòu)框架

交互設(shè)備是支持多點(diǎn)觸控功能的觸控屏, 作為觸控事件的發(fā)起者, 同時(shí)也作為向用戶展示觸控操作結(jié)果的介質(zhì). 交互事件首先被Windows捕獲, 并傳遞給OSG的事件隊(duì)列[5]. 事件隊(duì)列再將觸控?cái)?shù)據(jù)分發(fā)給GUI事件適配器. GUI事件適配器是OSG中處理不同 事件的主要類, 在提供給程序員的多點(diǎn)觸控派生類事件處理函數(shù)handle()中可以針對不同多點(diǎn)觸控事件進(jìn)行不同處理, 同時(shí)可以獲取原始的多點(diǎn)觸控?cái)?shù)據(jù). 然后根據(jù)手勢與交互任務(wù)的映射關(guān)系, 調(diào)用三維漫游器類和設(shè)計(jì)好的三維交互操作, 即可完成三維空間的漫游和其他交互操作.

1.1 OSG中多點(diǎn)觸控事件處理

OSG中對多點(diǎn)觸控事件處理涉及Graphics WindowWin32、EventQueue、GUIEventAdapter等類, 其多點(diǎn)觸控事件處理流程如圖2所示.

Windows采用消息機(jī)制來完成事件的捕捉或處理, 而OSG則是在GraphicsWindowWin32類的handleNativeWindowingEvent()函數(shù)中實(shí)現(xiàn)消息處理機(jī)制, 其中多點(diǎn)觸控事件是通過對WM_TOUCH的捕獲來處理的. 從wParam和lParam中獲得觸控?cái)?shù)據(jù), 并將觸控事件類型分為TOUCHEVENTF_DOWN、TOUCHEVENTF_MOVE和TOUCHEVENTF_UP3種類型分別處理, 繼而將事件和數(shù)據(jù)傳入到OSG事件隊(duì)列處理類. EventQueue類可以理解為對交互事件進(jìn)行添加和分發(fā)處理的集合, 它保存了一個(gè)GUIEventAdapter的隊(duì)列, 并通過touchBegan、touchMoved、touchEnded方法向隊(duì)列中新增觸控事件和數(shù)據(jù), 從而使得用戶可以在自己的派生類中進(jìn)行事件處理. 這一隊(duì)列會(huì)在場景渲染的每一幀被遍歷、執(zhí)行和清理, 從而確保用戶交互動(dòng)作的順利進(jìn)行[6]. 在客戶端, 通常由用戶自定義一個(gè)派生自GUIEventAdapter的類, 并通過重載handle函數(shù)來處理各種事件的響應(yīng), 并將觸控事件轉(zhuǎn)化為鼠標(biāo)的PUSH、DRAG、RELEASE事件類型進(jìn)行不同處理, 而觸控點(diǎn)原始數(shù)據(jù)也可傳入其中, 為手勢的識(shí)別和定義提供了數(shù)據(jù)基礎(chǔ).

1.2 多點(diǎn)觸控?cái)?shù)據(jù)流

在OSG中多點(diǎn)觸控?cái)?shù)據(jù)流是伴隨著事件處理流程在不同階段進(jìn)行傳遞, 如圖2所示, 并在不同階段使用不同的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ).

在GraphicsWindowWin32中使用Windows SDK中通用多點(diǎn)觸控?cái)?shù)據(jù)結(jié)構(gòu)體TOUCHINPUT來存儲(chǔ)數(shù)據(jù), 涉及觸控點(diǎn)ID(dwID)、觸控狀態(tài)(dwFlags)、觸控點(diǎn)坐標(biāo)(x, y)和時(shí)間等數(shù)據(jù). 這些數(shù)據(jù)隨事件處理流程被帶入到EventQueue類中, 又隨著不同事件的處理被傳遞到GUIEventAdapter類中. 在該類中使用TouchData類存儲(chǔ)觸控?cái)?shù)據(jù), 并提供了訪問、遍歷觸控?cái)?shù)據(jù)的函數(shù). 其中存儲(chǔ)的主要觸控?cái)?shù)據(jù)有觸控點(diǎn)ID(id)、觸控狀態(tài)(phase)、觸控點(diǎn)坐標(biāo)(x, y)和點(diǎn)擊計(jì)數(shù)(tapCount)等. 每一觸控事件發(fā)生時(shí), OSG均可獲得這些數(shù)據(jù), 在隨后的事件發(fā)生時(shí), 結(jié)構(gòu)體中前一次事件的數(shù)據(jù)會(huì)丟失. 這些原始數(shù)據(jù)會(huì)被傳遞到用戶自定義交互事件處理類中被用來處理多點(diǎn)觸控事件. 在OSG中僅提供了一個(gè)多點(diǎn)觸控軌跡球類MultiTouchTrackballManipulator, 目前可以提供對2個(gè)手指的縮放、平移, 3個(gè)手指同時(shí)點(diǎn)擊回到家位置的簡單多點(diǎn)觸控操作支持, 尚不能滿足三維空間復(fù)雜交互 操作需求.

OSG在底層提供了較為完善的多點(diǎn)觸控交互功能框架, 但是在針對三維空間操作中的手勢定義和功能實(shí)現(xiàn)上尚不完善. OSG對多點(diǎn)觸控手勢的定義只有平移、縮放, 不能滿足復(fù)雜應(yīng)用三維空間人機(jī)交互的需要. OSG未提供在原始數(shù)據(jù)基礎(chǔ)上的手勢識(shí)別算法, 另外由于三維交互任務(wù)復(fù)雜至今仍未對三維空間交互手勢與任務(wù)間映射關(guān)系形成公認(rèn)的結(jié)論, 因此, 解決三維空間的多點(diǎn)觸控操作仍須進(jìn)行大量研究.

2 三維交互任務(wù)與手勢

由于三維空間交互操作的復(fù)雜性和需求的多樣性, 目前對三維空間交互操作任務(wù)尚無明確的劃分[8], 加之二維平面觸控操作向三維空間進(jìn)行映射存在操作性和縱深空間缺失問題, 因此對三維空間交互操作的二維觸控手勢尚無明確定義.

對于三維交互任務(wù), Bowman[9]認(rèn)為在3D/VR 交互系統(tǒng)存在4種普遍的交互任: Navigation, Manipulation, Selection/Pick, System Control. 而田豐等將其進(jìn)一步劃分為場景瀏覽、實(shí)體選擇、實(shí)體釋放、實(shí)體操作、場景數(shù)據(jù)訪問和實(shí)體數(shù)據(jù)訪問6種操作[10]. 作者認(rèn)為以上對交互任務(wù)的劃分可看作是三維交互操作的元操作任務(wù), 除此之外, 由于應(yīng)用目的不同還存在大量更為復(fù)雜的交互操作任務(wù), 如三維地理空間中的距離丈量、通視、地圖線路規(guī)劃等. 當(dāng)然, 這些復(fù)雜交互操作任務(wù), 最終仍可分解為多個(gè)元操作任務(wù)的組合. 本文參考Microsoft觸控手勢定義[11], 結(jié)合對三維空間交互操作任務(wù)的分析和人們使用手勢操作習(xí)慣的認(rèn)識(shí), 總結(jié)了表1中三維操作任務(wù)和對應(yīng)的多點(diǎn)觸控手勢定義. 所有操作總體上可分為針對場景對象和被關(guān)注實(shí)體對象, 對于場景的操作是通過改變視點(diǎn)來實(shí)現(xiàn), 而對于實(shí)體的操作前提是已有實(shí)體被拾取, 繼而對其進(jìn)行幾何變換操作. 這種手勢及操作方式繼承了使用鼠標(biāo)進(jìn)行三維空間交互操作的一般過程.

表1給出了在通用三維交互應(yīng)用中的主要操作任務(wù)和手勢定義, 在一些更為專業(yè)化的交互中還會(huì)存在更多復(fù)雜操作. 一方面可以通過將一些簡單手勢組合為符合交互操作語義的復(fù)雜手勢集合來實(shí)現(xiàn)復(fù)雜操作[12,13], 另一方面可以定義其他未使用手勢來表達(dá)復(fù)雜操作.

表1 三維操作任務(wù)及對應(yīng)的多點(diǎn)觸控手勢定義

3 手勢的識(shí)別

OSG在每一幀處理多點(diǎn)觸控事件時(shí)均會(huì)向用戶自定義多點(diǎn)觸控事件處理類的handle()函數(shù)中傳遞多點(diǎn)觸控?cái)?shù)據(jù), 包括觸控點(diǎn)ID(id)、觸控狀態(tài)(phase)、觸控點(diǎn)坐標(biāo)(x, y)和點(diǎn)擊計(jì)數(shù)(tapCount)等數(shù)據(jù). 每個(gè)接觸觸控屏的手指都會(huì)被賦以唯一的ID, 每個(gè)手指在按下觸控屏?xí)r, 其phase為TOUCH_BEGAN, 隨后會(huì)變成TOUCH_MOVED, 在手指離開觸控屏?xí)r會(huì)變?yōu)門OUCH_ENDED. 由于觸控屏的靈敏性, 會(huì)出現(xiàn)多個(gè)手指的phase不同步的現(xiàn)象. 同時(shí), 對于觸控坐標(biāo)點(diǎn)的位置不能按絕對坐標(biāo)值進(jìn)行判斷, 可以設(shè)置坐標(biāo)靈敏度閾值(coTh)和角度靈敏度閾值(anTh). 這樣只要2次敲擊屏幕坐標(biāo)位置在閾值范圍內(nèi), 即可認(rèn)為是點(diǎn)擊了的同一位置[12].

為了完成表1中設(shè)計(jì)的多點(diǎn)觸控手勢識(shí)別, 結(jié)合OSG中獲得的觸控?cái)?shù)據(jù)及對觸控?cái)?shù)據(jù)生命周期的分析, 在已有觸控?cái)?shù)據(jù)存儲(chǔ)結(jié)構(gòu)體基礎(chǔ)上增加了手指旋轉(zhuǎn)角度(angle), 同時(shí)為了識(shí)別單指雙擊操作還增加了P(x,y)、time用于存儲(chǔ)單指點(diǎn)擊結(jié)束時(shí)手指單擊的位置和時(shí)間[13]. 則相應(yīng)的識(shí)別算法如下:

設(shè)data為存儲(chǔ)當(dāng)前幀多點(diǎn)觸控?cái)?shù)據(jù)的結(jié)構(gòu)體,last為存儲(chǔ)上一幀多點(diǎn)觸控?cái)?shù)據(jù)的結(jié)構(gòu)體.為當(dāng)前幀觸點(diǎn)i的坐標(biāo),為前一幀觸點(diǎn)i的坐標(biāo), i=1, 2, …為觸控點(diǎn)個(gè)數(shù)., 為前后兩幀同一手指在x方向的坐標(biāo)差., 為前后兩幀同一手指在y方向的坐標(biāo)差.為第i個(gè)觸點(diǎn)前后2幀距離差.為當(dāng)前幀第一和第二個(gè)觸點(diǎn)間距離,為前一幀第一和第二個(gè)觸點(diǎn)間距離. θ為單指觸點(diǎn)到坐標(biāo)原點(diǎn)形成線段與Y軸間的夾角. Num為phase等于TOUCH_ENDED的觸控點(diǎn)計(jì)數(shù).

(1) 獲取系統(tǒng)當(dāng)前時(shí)間T, 獲得當(dāng)前幀多點(diǎn)觸控?cái)?shù)據(jù)data.

(2) 若當(dāng)前幀data的觸控點(diǎn)數(shù)為1且上一幀last的觸控點(diǎn)數(shù)為1, 則觸控類型為單指觸控. ①若, 則當(dāng)前手勢為左/右平移操作; ②相反, 則當(dāng)前手勢為升/將操作; ③若有對象處于被拾取狀態(tài)且

(3) 若當(dāng)前幀data的觸控點(diǎn)數(shù)為2且上一幀last的觸控點(diǎn)數(shù)為2,則觸控類型為雙指觸控. ①若1, 則當(dāng)前手勢為縮放操作; ③若<兩指并攏最大閾值,且第二指的phase=TOUCH_BEGAN, 則angle=0; 第二指的phase=TOUCH_MOVED, 則計(jì)算θ, 并使angle等于前后2幀θ之差, 則當(dāng)前手勢為繞X軸旋轉(zhuǎn)操作; ④若第一、二指的angle均不為0, 則當(dāng)前手勢為繞Y軸旋轉(zhuǎn)操作; ⑤若

(4) 若當(dāng)前幀data的觸控點(diǎn)數(shù)為3且上一幀last的觸控點(diǎn)數(shù)為3, 則觸控類型為三指觸控, 則場景視點(diǎn)回到家位置.

(5) last=data. 若phase等于TOUCH_ENDED, 則Num++.

(6) 若Num=data的觸控點(diǎn)個(gè)數(shù), 則一次完整的觸控過程完成, last=NULL.

4 基于多點(diǎn)觸控的OSG三維交互應(yīng)用

通過對OSG多點(diǎn)觸控解決框架和三維空間交互任務(wù)的分析, 利用所設(shè)計(jì)的多點(diǎn)觸控手勢識(shí)別算法, 在VC++的Win32控制臺(tái)框架下使用OSG3.1版本作為三維交互引擎和多點(diǎn)觸控操作平臺(tái), 開發(fā)了如圖3所示的三維多點(diǎn)觸控交互平臺(tái), (a)圖是三個(gè)手指同時(shí)點(diǎn)擊使三維地圖場景視點(diǎn)回到家位置, (b)、(c)圖是2個(gè)手指的操作三維地圖場景縮小、放大, (d)圖是對三維地圖場景進(jìn)行了平移的操作. 實(shí)踐表明, 對OSG多點(diǎn)觸控框架的認(rèn)識(shí)是正確的, 所設(shè)計(jì)的三維空間多點(diǎn)觸控手勢識(shí)別算法是有效的, 可滿足較為通用的三維空間多點(diǎn)觸控交互操作的需要, 體現(xiàn)了多點(diǎn)觸控人機(jī)交互技術(shù)更加簡單、方便、高效、直觀的特點(diǎn).

(a) 回到家位置 (b) 兩指縮小

(c) 兩指放大 (d) 一指平移

圖3 多點(diǎn)觸控手勢對三維地圖對象操作

5 結(jié)語

目前在OSG中常見的人機(jī)交互方式仍是鼠標(biāo)、鍵盤, 操作方式不夠人性化, 多點(diǎn)觸控交互方式向現(xiàn)實(shí)中的雙手操作方式實(shí)現(xiàn)了有效靠攏, 尤其是向自然用戶接口提供了底層支持[14]. 但仍有很多問題亟待進(jìn)一步深入研究: (1)由于多點(diǎn)觸控操作是在二維平面上進(jìn)行, 而三維空間操作本質(zhì)上存在6個(gè)自由度, 如何解決二者之間的差異, 設(shè)計(jì)出規(guī)范、為大家公認(rèn)的交互手勢; (2)由于二維平面操作需要向三維空間操作映射, 二者存在操作粒度不統(tǒng)一的問題[15]. 如何使二者的操作能夠協(xié)調(diào)一致值得研究; (3)由于存在多種多點(diǎn)觸控解決方案, 用戶對手勢的認(rèn)知不統(tǒng)一, 急需研究一種中間件技術(shù)來解決二者的差異問題.

1 Norman DA. Natural user interfaces are not natural. Interactions, 2010, (17): 6–10.

2 Olafsdottir H, Appert C. Multi-touch gestures for discrete and continuous control. International Working Conference on Advanced Visual Interfaces (AVI). Como, Italy. May 2014.

3 王銳,錢學(xué)雷.OpenSceneGraph三維渲染引擎設(shè)計(jì)與實(shí)踐.北京:清華大學(xué)出版社,2009.

4 Yao JL, Fernando T, et al. A multi-touch natural user interface framework. 2012 International Conference on Systems and Information (ICSAI 2012). 2012. 499–504.

5 Pal P, Vikas S, Raju P. Design and implementation of low-cost multi-touch surface computing using image processing. IOSR Journal of Computer Engineering, 2014, 16(2): 48–56.

6 Hlavacek F, Kovarova A. Multi-touch interaction techniques to control 3D objects on a smartphone screen. Proc. of the 16th International Conference on Computer Systems and Technologies (CompSysTech ’15). NY, USA. 2015. 350–357.

7 Kiriaty Y. MultiTouch capabilities in Windows 7, MSDN Magazine. 2009. http://msdn.microsoft.com/en-us/magazine/ ee336016.aspx.

8 姚垚.基于多點(diǎn)觸控平臺(tái)的的三維可視化系統(tǒng)交互設(shè)計(jì)與評(píng)價(jià)研究[碩士學(xué)位論文].鄭州:解放軍信息工程大學(xué),2012.

9 Bowman DA, Kruijff E, LaViola JJ, et al. Mine, Ivan Poupyrev. 3D user interface design: Fundamental techniques, theory, and practice. In: Akeley K, ed. SIGGRAPH 2000 Course Notes 36. Addison Wesley, 2000. http://www. siggraph.org.

10 田豐,戴國忠.三維交互任務(wù)的描述和結(jié)構(gòu)設(shè)計(jì).軟件學(xué)報(bào),2002,13(11):2099–2105.

11 Windows Touch Gestures Overview. https://msdn.microsoft. com/en-us/library/dd940543(VS.85).aspx.

12 遲健男,等.多點(diǎn)觸摸人機(jī)交互技術(shù)綜述.智能系統(tǒng)學(xué)報(bào), 2011,6(1):28–37.

13 張國華,等.基于多點(diǎn)觸摸的交互手勢分析與設(shè)計(jì).計(jì)算機(jī)應(yīng)用研究,2010,27(5):1737–1739,1752.

14 Wang CB, Dai JQ. 3D multi-touch recognition based virtual interaction. 2010 3rd International Congress on Image and Signal Processing (CISP2010). 2010. 1478–1481.

15 Ohnishi T, Lindeman R. Multiple multi-touch touchpads for 3D selection. IEEE Symposium on 3D User Interfaces 2011. 2011. 115–116.

Multi-Touch Natural User Interface Framework in OSG

WU Xue-Yi

(Faculty of Printing Packaging Engineering and Digital Media Technology, Xi’an University of Technology, Xi’an 710048, China)

OSG multi-touch natural user interface framework is based on the Windows multi-touch technology, in which the management and processing of touch event combines with OSG event processing mechanism, and forms the OSG multi-touch operation framework. According to the raw data that is produced by user’s finger through touching screen, it defines the gestures needed, and combines it with interactive event processing in OSG to complete multi-touch for interactive operation in 3d scene. Based on the above framework, this paper analyzes the major operation tasks in 3D user interaction, defines the interactive gestures that conform to cognition of the 3D spatial operations, and designs the recognition algorithm of the related gestures. Finally, through developing an application example, the correctness and feasibility of design and cognition of multi-touch natural user interface framework in OSG are verified.

multi-touch; OSG; natural user interface; 3D application; gestures recognition

陜西省教育廳科研計(jì)劃(2013JK1155)

2016-06-27;

2016-08-18

[10.15888/j.cnki.csa.005687]

猜你喜歡
定義用戶
永遠(yuǎn)不要用“起點(diǎn)”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
定義“風(fēng)格”
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
Camera360:拍出5億用戶
100萬用戶
如何獲取一億海外用戶
修辭學(xué)的重大定義
主站蜘蛛池模板: 视频二区国产精品职场同事| 婷婷六月在线| 欧美成人一区午夜福利在线| 奇米影视狠狠精品7777| 国产尤物jk自慰制服喷水| 国产成人亚洲精品无码电影| 动漫精品中文字幕无码| 日韩国产精品无码一区二区三区| 狠狠ⅴ日韩v欧美v天堂| 国产激情在线视频| 91午夜福利在线观看| 国产成人91精品| 亚洲 日韩 激情 无码 中出| 99这里精品| 日韩天堂视频| 欧美日韩久久综合| 人人澡人人爽欧美一区| 欧美性色综合网| 欧美精品一区在线看| 99久久精品国产麻豆婷婷| 一本色道久久88综合日韩精品| 色成人亚洲| 日本一区高清| 国产区在线观看视频| 国产精品手机视频| 97狠狠操| 日本三级欧美三级| 亚洲天堂精品视频| 人与鲁专区| 四虎AV麻豆| 久热这里只有精品6| 鲁鲁鲁爽爽爽在线视频观看| 欧美在线精品一区二区三区| 亚洲人成在线精品| 91精品专区| 色AV色 综合网站| 国产一在线| 国产高清在线观看| 亚洲国产欧美目韩成人综合| 国产免费羞羞视频| 九色在线视频导航91| 国产精品9| 亚洲一区二区三区麻豆| 亚洲制服中文字幕一区二区| 亚洲永久色| 91视频精品| 日韩成人在线视频| 国产白丝av| 国产在线观看精品| 一本一道波多野结衣一区二区| 国禁国产you女视频网站| 手机永久AV在线播放| 凹凸国产分类在线观看| 国产精品大白天新婚身材| 成人午夜在线播放| 亚洲天堂首页| 在线中文字幕日韩| 亚洲综合久久成人AV| 制服丝袜无码每日更新| 国产欧美亚洲精品第3页在线| 99伊人精品| 亚洲日本中文字幕乱码中文| 国模粉嫩小泬视频在线观看| 国产成人喷潮在线观看| 91精品免费久久久| 久久性妇女精品免费| 99福利视频导航| 国产99精品久久| 亚洲AⅤ波多系列中文字幕| 九九免费观看全部免费视频| 亚洲国产精品久久久久秋霞影院| 一边摸一边做爽的视频17国产| 少妇极品熟妇人妻专区视频| 日韩av手机在线| 最新国语自产精品视频在| 天天做天天爱夜夜爽毛片毛片| 国产一区二区三区免费| 免费一极毛片| 91一级片| 国产精品三级av及在线观看| 好吊色妇女免费视频免费| 91偷拍一区|