




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Lecture9圖形用戶接口與交互技術(shù)
概述交互技術(shù)已成為應(yīng)用軟件的重要組成部分,并已成為軟件可用性的重要指標(biāo),對軟件的質(zhì)量及市場價(jià)值有重要影響。用好的交互技術(shù)及用戶界面編寫的應(yīng)用程序,便于用戶的學(xué)習(xí)和理解,并可提高運(yùn)行效率并減少出錯機(jī)會。
交互輸入的硬件設(shè)備
鍵盤光筆圖形板控制棒鼠標(biāo)數(shù)據(jù)手套
鍵盤
圖形系統(tǒng)中一般均有一個(gè)普通的字母、數(shù)字鍵盤,用它可輸入文本、命令及數(shù)據(jù)等。有時(shí)鍵盤也可用來輸入圖形坐標(biāo)、菜單任選項(xiàng)以及對圖形進(jìn)行控制。
有些專用圖形系統(tǒng)也可能只包含由一組按鈕、電位器及開關(guān)等組成的專用鍵盤。用鍵盤上的按鈕或開關(guān)可選擇圖段,用電位器可向系統(tǒng)送入一實(shí)數(shù)值以快速控制光標(biāo)移動。
光筆
用光筆可探測屏幕上某點(diǎn)發(fā)出的光線以確定該點(diǎn)在屏幕上的位置。光脈沖出現(xiàn)的時(shí)刻與掃描時(shí)間有固定的關(guān)系,可由屏幕上發(fā)光物質(zhì)被激發(fā)的時(shí)刻換算出此點(diǎn)在屏幕上的坐標(biāo)。
圖形板
圖形板又稱為數(shù)字化儀,它可用來精確地選擇坐標(biāo)位置。圖形板由兩部分構(gòu)成:平板及選圖筆。在平板上布置由很多導(dǎo)線形成的矩形網(wǎng)格。導(dǎo)線上加有與位置成比例的電位,在水平及垂直方向?qū)Ь€上加的電位差,相應(yīng)于屏幕上該方向的坐標(biāo)差。
在對平板上某點(diǎn)定位時(shí),可把此點(diǎn)的電位記錄下來,然后轉(zhuǎn)換為圖形程序中使用的屏幕坐標(biāo)。另外還有一些圖形板采用電磁感應(yīng)、超聲波等技術(shù)。
圖形板圖形板控制棒及跟蹤球
控制棒又稱為游戲棒:光標(biāo)移動量與小棒偏移量成正比
跟蹤球:用旋轉(zhuǎn)的方式使屏幕光標(biāo)作相應(yīng)移動。
鼠標(biāo)
鼠標(biāo)數(shù)據(jù)手套
數(shù)據(jù)手套(DataGlove)是虛擬現(xiàn)實(shí)系統(tǒng)中重要的交互設(shè)備,手套由很輕的彈性材料構(gòu)成,緊貼在手上。這個(gè)系統(tǒng)包括位置傳感器、方向傳感器和沿著每個(gè)手指背部安裝的一組有保護(hù)套的光纖導(dǎo)線,它們檢測手指和手的運(yùn)動。
交互設(shè)備的邏輯功能
用輸入設(shè)備可向圖形程序輸入多種信息:坐標(biāo)位置標(biāo)注字符串圖形變換參數(shù)菜單任選項(xiàng)圖段標(biāo)號
交互設(shè)備的邏輯功能為了使圖形軟件包獨(dú)立于硬件設(shè)備,輸入設(shè)備按照輸入數(shù)據(jù)的不同可歸納為若干種邏輯功能,圖形軟件包中可用的邏輯設(shè)備通??煞譃榱悾哼壿嫻δ芘c物理設(shè)備同一邏輯功能可用不同的物理設(shè)備實(shí)現(xiàn),一種物理設(shè)備也可能實(shí)現(xiàn)多種邏輯功能。
定位
在交互方式下,典型的定位方法是使用屏幕上的圖形光標(biāo)。用跟蹤球、控制棒、鼠標(biāo)或圖形板上的選圖筆等控制圖形光標(biāo)移動。
普通鍵盤也可作為定位使用
.筆劃
用筆劃功能可一次輸入一系列坐標(biāo)位置,用這些坐標(biāo)點(diǎn)可連成一連續(xù)的筆劃。
可作為定位使用的物理設(shè)備一般均可作為筆劃功能使用。筆劃功能常用圖形板及光筆來實(shí)現(xiàn)。
字符串
可實(shí)現(xiàn)字符串的基本物理設(shè)備是鍵盤,所以有時(shí)把字符串設(shè)備就稱為鍵盤設(shè)備。
賦值
在圖形系統(tǒng)中可用賦值功能輸入一個(gè)實(shí)數(shù)值。賦值一般用于設(shè)置各種圖形參數(shù),如旋轉(zhuǎn)角度、比例因子及其他物理參數(shù)(如溫度、壓力及電壓等)。用作賦值使用的典型物理設(shè)備是用旋鈕帶動的旋轉(zhuǎn)電位器。旋鈕旋轉(zhuǎn)的角度轉(zhuǎn)換為響應(yīng)的電壓值,送入計(jì)算機(jī)后,再轉(zhuǎn)換為相應(yīng)的實(shí)數(shù)值。鍵盤的數(shù)字鍵也可作為賦值使用,直接輸入實(shí)數(shù)值。但這種輸入方式比之用旋鈕電位器,其速度要慢。賦值另外一種賦值輸入的方法是在屏幕上用畫面顯示出輸入值的比例范圍
.選擇
圖形程序中,常用菜單方式在若干任選項(xiàng)中選擇某個(gè)輸入項(xiàng)。選擇設(shè)備常用鍵盤上的功能鍵實(shí)現(xiàn)。選擇設(shè)備也可用光筆、鼠標(biāo)或圖形板實(shí)現(xiàn)。
檢圖
用檢圖功能可選中一個(gè)單元圖形結(jié)構(gòu)(如圖段),然后對此圖形進(jìn)行各種操作處理。
可作定位器使用的光筆、鼠標(biāo)及圖形板等都可作檢圖功能使用。
基本交互技術(shù)在編寫繪圖程序時(shí),可使用多種交互繪圖技術(shù),如圖形的定位、組合、移動、提示等。這些技術(shù)為建立人機(jī)協(xié)調(diào)的高效的圖形軟件提供了有力的支持。下面介紹常用的若干交互技術(shù)。
基本定位方法
由定位設(shè)備確定的坐標(biāo)位置,常作為圖形或字符串的定位基準(zhǔn)。方向約束及網(wǎng)格約束定位方法
有時(shí)為了圖形定位的精確方便,可對定位引入某些約束,如規(guī)定圖形的方位或指定定位基準(zhǔn)。水平及垂直約束
以任意傾斜度的直線為約束方向
網(wǎng)格約束定位
方向約束及網(wǎng)格約束定位方法網(wǎng)格約束定位引力場定位方法
在用圖形軟件包繪圖時(shí),常要求在原來所繪的一條直線上重復(fù)連接另一條直線。此時(shí)用網(wǎng)格約束方法則不太方便。有些圖形軟件包中提供引力場定位方法,用這種方法可把靠近一直線的任意輸入點(diǎn)轉(zhuǎn)換為直線上的點(diǎn)。橡皮帶方法
橡皮帶方法是指當(dāng)屏幕光標(biāo)移動時(shí),可從一起始位置拉伸出一條直線,并可在適當(dāng)位置把直線固定下來,這就像從一固定點(diǎn)拉伸一條橡皮帶相似。
草圖勾勒法
在很多應(yīng)用場合,要求在屏幕上勾勒出一物體的輪廓,這就要使用草圖勾勒法。實(shí)現(xiàn)草圖勾勒的一種方法是擴(kuò)展橡皮帶法,在屏幕上形成由若干直線段圍成的草圖。圖形拖移法在交互式繪圖中,常用拖移法在屏幕上把一物體移動到另一位置。用拖動法移動圖形時(shí),首先移動屏幕光標(biāo)選中一圖形,然后把光標(biāo)移到屏幕另一位置,把原選中的圖形在新位置顯示出來。交互式繪圖中的反饋技術(shù)
在交互式工作方式下,反饋技術(shù)是十分重要的。反饋是指當(dāng)操作人員用邏輯設(shè)備完成某種輸入操作后,系統(tǒng)要立即對輸入結(jié)果給出提示,通知操作人員完成并按提示決定下一步的工作。設(shè)計(jì)人機(jī)交互及用戶界面的一般原則
以上各節(jié)介紹了基本交互技術(shù)及數(shù)據(jù)輸入的基本方式,用上述技術(shù)可以建立友好的用戶界面。在設(shè)計(jì)人機(jī)交互及用戶界面時(shí)要遵循若干原則,才能保證建立的人機(jī)界面是和諧及高效率的。用戶界面的一般風(fēng)格
所見即所得
(WhatYouSeeIsWhatYouGet)
所見即所得是指在屏幕上用戶交互的內(nèi)容與系統(tǒng)最終生成的圖像是一致的。
直接操作
操作對象、屬性及關(guān)系時(shí)可以在屏幕上以直觀可視的方式表示出來,這種方式比交互命令及菜單方式操作更加方便、直觀。直接操作最典型的例子是直接在屏幕上單擊文件名或圖標(biāo)進(jìn)行拷貝或移動操作。
圖標(biāo)
圖標(biāo)(Icon)是圖形軟件中操作對象、屬性、關(guān)系及某些動作的圖形表示。
設(shè)計(jì)用戶界面的一般原則
簡單易學(xué)易用在設(shè)計(jì)用戶界面時(shí),保證各級用戶易學(xué)易用是一個(gè)基本原則。為了做到這一點(diǎn),應(yīng)當(dāng)在用戶操作過程中,應(yīng)提供help命令,當(dāng)用戶操作發(fā)生困難時(shí),可隨時(shí)調(diào)用。在用戶界面中應(yīng)隨時(shí)設(shè)置提示信息,當(dāng)用戶執(zhí)行到某一步而不知下一步如何操作時(shí),可由提示信息決定下一操作。
設(shè)計(jì)用戶界面的一般原則設(shè)計(jì)的一致性原則用戶界面除保持使用的符號、顏色等的含義的一致性使界面的各環(huán)節(jié)及功能保持統(tǒng)一的、簡單的規(guī)則,不出現(xiàn)例外情況保持系統(tǒng)的一致性可使用戶較少出現(xiàn)操作錯誤,而且可以把系統(tǒng)某些方面的知識推廣到其他方面設(shè)計(jì)用戶界面的一般原則提供反饋:在交互式用戶界面操作過程中,應(yīng)隨時(shí)提供反饋,通過反饋,用戶可以了解系統(tǒng)當(dāng)前執(zhí)行的狀態(tài)當(dāng)前設(shè)置的參數(shù)、輸入的數(shù)據(jù)用戶輸入的操作是否已被接受,是否已被執(zhí)行對于長時(shí)間的操作,應(yīng)提示操作正在執(zhí)行對于已選中的對象,應(yīng)當(dāng)以明顯的方式指明一個(gè)不提示任何反饋的系統(tǒng),將會使操作者不知道系統(tǒng)當(dāng)前的狀態(tài),也就難以確定下一步的操作。設(shè)計(jì)用戶界面的一般原則對錯誤的修正:系統(tǒng)在操作過程中,難免會出現(xiàn)失誤。用戶界面應(yīng)保證在出現(xiàn)操作失誤后,有修正錯誤的手段出現(xiàn)失誤后,通過“復(fù)原”恢復(fù)到操作前的狀態(tài)當(dāng)已輸入?yún)?shù),命令準(zhǔn)備發(fā)出時(shí),用戶可以“取消”此命令等有了完善的錯誤修正功能,用戶就不會因害怕出現(xiàn)錯誤而影響操作
OpenGL中的交互操作
我們一般使用glut來處理處理數(shù)據(jù)輸入和用戶的交互式動作。OpenGL提供了對二維及三維對象撿取的功能。OpenGL中的主要交互命令是選擇和撿取命令以及反饋命令。OpenGL中的交互操作OpenGL中的選擇(Select)模式可以從繪制的一系列圖元中選中與用戶指定的觀察體相交的圖元。用戶觀察體在二維空間是指由用戶定義的矩形或多邊形等。在三維空間則是三維的矩形包圍盒或其他三維形體。在選擇模式下,與觀察體相交的每一圖元都要產(chǎn)生一個(gè)選中信息,以確定操作是否被選中。OpenGL中的交互操作OpenGL中還包含一撿?。≒ick)命令。用此命令可以撿取圖元。用選擇及撿取命令,用戶可以方便地進(jìn)行若干交互操作:如選擇一個(gè)圖元項(xiàng),選擇一組圖元項(xiàng),在當(dāng)前選擇中增加一個(gè)或多個(gè)圖元項(xiàng),從一組重疊的圖元中選中一個(gè)圖元等。OpenGL下的反饋命令與選擇命令有相似之處,即在此模式下不產(chǎn)生任何畫面,要繪制的圖元將被送回應(yīng)用程序。
物體的選擇選擇物體事實(shí)上是響應(yīng)OpenGL應(yīng)用程序的一個(gè)拾取事件,該事件通常是由鼠標(biāo)來觸發(fā)的。應(yīng)用程序必須建立物體的名稱集合,并將名稱加以適當(dāng)組織。然后當(dāng)發(fā)生拾取事件時(shí),就對其進(jìn)行響應(yīng)。當(dāng)拾取一個(gè)物體后,就以記錄的形式組織相關(guān)信息并返回給應(yīng)用程序。
建立名稱堆棧物體的選擇集合是用物體的名稱堆棧來管理的,建立名稱堆棧的步驟如下:1.用glSelectBuffer()指定用于返回命令中記錄的數(shù)組。建立名稱堆棧voidglSelectBuffer(GLsizeisize,GLuint*buffer);指定用于返回選擇數(shù)據(jù)的數(shù)組。參數(shù)buffer是指向無符號整數(shù)(unsignedinteger)數(shù)組的指針,數(shù)據(jù)就存在這個(gè)數(shù)組中,size參數(shù)說明數(shù)組中最多能夠保存的值的個(gè)數(shù)。要在進(jìn)入選擇模式之前調(diào)用函數(shù)glSelectBuffer()建立名稱堆棧2.以glRenderMode(GL_SELECT)函數(shù)進(jìn)入選擇模式。GLint
glRenderMode(GLenummode);控制應(yīng)用程序是否進(jìn)入渲染、選擇或反饋模式。mode參數(shù)可以是GL_RENDER(默認(rèn))、GL_SELECT或GL_FEEDBACK之一。應(yīng)用程序?qū)⒈3痔幱诮o定模式,直到再次以不同的參數(shù)調(diào)用glRenderMode()。在進(jìn)入選擇模式之前必須調(diào)用glSelectBuffer()指定選擇數(shù)組。類似的,進(jìn)入反饋模式之前要調(diào)用glFeedbackBuffer()指定反饋數(shù)組。如果當(dāng)前模式是GL_SELECT或GL_FEEDBACK之一,那么glRenderMode()的返回值有意義。返回值是當(dāng)前退出當(dāng)前模式時(shí),選擇命中數(shù)或放在反饋數(shù)組中的值的個(gè)數(shù)。(調(diào)用此函數(shù)就會退出當(dāng)前模式);負(fù)值意味著選擇或反饋數(shù)組溢出(overflowed)。你可以用GL_RENDER_MODE調(diào)用glGetIntegerv()獲取當(dāng)前模式。建立名稱堆棧3.用glInitName()和glPushName()初始化名稱堆棧。voidglInitNames(void);清空名稱堆棧。voidglPushName(GLuintname);將name壓入名稱堆棧。壓入名稱超過棧容量時(shí)將生成一個(gè)GL_STACK_OVERFLOW錯誤。名稱堆棧深度因OpenGL實(shí)現(xiàn)不同而不同,但最少要能容納64個(gè)名字。你可以用參數(shù)GL_NAME_STACK_DEPTH調(diào)用glGetIntegerv()以獲取名稱堆棧深度。
建立名稱堆棧4.定義用于選擇的視見體。并用glPickMatrix()設(shè)定選擇區(qū)域的范圍voidgluPickMatrix(GLdoublex,GLdoubley,GLdoublewidth,GLdoubleheight,GLintviewport[4]);建立一個(gè)投影矩陣用于將繪制限制在視口的一個(gè)小區(qū)域里,并將這個(gè)矩陣乘到當(dāng)前矩陣棧上。拾取區(qū)域的中心是窗口坐標(biāo)(x,y)處,通常是光標(biāo)位置。width和height定義選取區(qū)域大小,用屏幕坐標(biāo)。viewport[]表明當(dāng)前視口邊界,這可以用調(diào)用glGetIntegerv(GL_VIEWPORT,GLint*viewport);獲得。建立名稱堆棧5、依照繪圖模式下場景的繪制步驟原樣繪制場景。一般可以與繪圖模式共用繪制場景的函數(shù)。在繪制過程中,為每一個(gè)待選物體設(shè)定一個(gè)名字,并將該名稱壓入堆棧。6、用glRenderMode(GL_RENDER)函數(shù)退出選擇模式。記錄該函數(shù)的返回值,該值為選中的數(shù)目。在選中物體名稱緩存中記錄有選中物體的名稱及其它有用的信息。反饋信息反饋為程序設(shè)計(jì)提供了重要的運(yùn)行資料。在反饋模式下,每個(gè)被光柵化的基元均產(chǎn)生一組數(shù)據(jù),并由OpenGL把它們存放入反饋數(shù)組中,每組數(shù)據(jù)均有一個(gè)標(biāo)記,該標(biāo)記說明了基元的類型,接著是描述基元的頂點(diǎn)坐標(biāo)值、其他如顏色和紋理等相關(guān)數(shù)據(jù)。在退出反饋模式之后,這些數(shù)據(jù)就被寫入反饋數(shù)組中。在應(yīng)用反饋模式時(shí),還可以插入一個(gè)標(biāo)記,通過標(biāo)記可以把一組數(shù)據(jù)與另—織數(shù)據(jù)區(qū)分開來,以便于識別和處理。
反饋與選擇模式相同的是,反饋模式不對像素進(jìn)行任何光柵化操作,也不向幀緩存寫入任何繪圖信息,因而在應(yīng)用反饋模式之前,必須繪制一次需要反饋信息的物體。與選擇模式不同的是,反饋模式是根據(jù)基元被處理的情況決定返回已經(jīng)被處理的幾何頂點(diǎn)的相關(guān)數(shù)據(jù),應(yīng)用時(shí)要比選擇模式簡單得多.也不存在較大的技術(shù)問題:遺憾的是,OpenGL直接返回的都是頂點(diǎn)的已經(jīng)被光柵化后的窗口坐標(biāo)(當(dāng)然,可通過一系列線性變換獲得該頂點(diǎn)的世界坐標(biāo))。反饋模式不像選擇模式那樣需要外設(shè)來觸發(fā),可以通過函數(shù)調(diào)用來實(shí)現(xiàn)。
應(yīng)用反饋模式的基本步驟1.確定反饋信息的信息類別和反饋數(shù)組。反饋數(shù)組應(yīng)是一個(gè)存儲浮點(diǎn)值的數(shù)組,由glFeedbackBuffer()函數(shù)來完成,共原型為:voidglFeedbackBuffcr(CLsizeisize,CLenumtype,GLfloat*buffer);其中,size參數(shù)表示能夠?qū)戇M(jìn)反饋數(shù)組的數(shù)據(jù)的最大個(gè)數(shù)。type參數(shù)為一個(gè)標(biāo)記常數(shù),它表明OpenGL應(yīng)該返回頂點(diǎn)的那些數(shù)據(jù),可以取的值如下:GL-2D,GL-3D,GL-3D-COLOR,GL-3D-COLOR-TEXTURE及GL-4D-COLOR-TEXTURE,其含義說明如下:應(yīng)用反饋模式的基本步驟GL-2D:只返回頂點(diǎn)的幾何坐標(biāo)(x,y)。GL-3D:只返回頂點(diǎn)的幾何坐標(biāo)(x,y,z)。GL-3D-COLOR:返回頂點(diǎn)的幾何坐標(biāo)(x,y,z)及頂點(diǎn)的顏色。若顏色為RGBA模式,則顏色分量的個(gè)數(shù)為4,這樣該組數(shù)據(jù)的個(gè)數(shù)為7。GL-3D-COLOR-TEXTURE:返回頂點(diǎn)的幾何坐標(biāo)(x,y,z)、頂點(diǎn)的顏色與紋理值。紋理由4個(gè)量組成。這樣在RGBA模式下,該組數(shù)據(jù)的個(gè)數(shù)為11個(gè)。GL-4D-COLOR-TEXTU
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代賣公司合同范本
- 產(chǎn)品抵押工資合同范本
- 內(nèi)部購買服務(wù)合同范本
- 999玫瑰買賣合同范本
- 云南土地流轉(zhuǎn)合同范本
- 04購房合同范例
- 無錫錦鯉池過濾器施工方案
- 主體蓋房合同范本
- app監(jiān)控合同范本
- 公司安全協(xié)議合同范本
- 《人力資源管理》全套教學(xué)課件
- 部編人教版語文小學(xué)六年級下冊第四單元主講教材解讀(集體備課)
- (2024年)師德師風(fēng)學(xué)習(xí)內(nèi)容教師師德師風(fēng)培訓(xùn)內(nèi)容通用多篇
- GB/T 3452.3-2005液壓氣動用O形橡膠密封圈溝槽尺寸
- 標(biāo)準(zhǔn)擊實(shí)試驗(yàn)自動計(jì)算記錄表
- 一個(gè)近乎完美的微信引流招生方案
- 門診特殊病種審批表
- T_CEC 102.1-2016 電動汽車充換電服務(wù)信息交換 第1部分_總則_(高清-最新版)
- 國際形式發(fā)票模板
- 山西省會計(jì)師事務(wù)所服務(wù)收費(fèi)標(biāo)準(zhǔn)(匯編)
- 陜西延長石油(集團(tuán))有限責(zé)任公司企業(yè)年金方案
評論
0/150
提交評論