研究生計算機圖形學-第2章_第1頁
研究生計算機圖形學-第2章_第2頁
研究生計算機圖形學-第2章_第3頁
研究生計算機圖形學-第2章_第4頁
研究生計算機圖形學-第2章_第5頁
已閱讀5頁,還剩187頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章交互技術、用戶接口及圖形軟件的標準化2.1交互任務與交互技術2.2交互輸入控制2.3用戶接口的設計2.4窗口系統2.5圖形軟件的標準化2.1交互任務與交互技術2.1.1交互任務交互任務是用戶輸入到計算機的一個單元信息。這里的單元信息是指完成一次輸入的內容。交互任務分為基本交互任務和組合交互任務兩類。基本交互任務有定位、選擇、文字輸入、數值輸入,由其派生的交互任務有定向、定路徑、三維交互等。組合交互任務是由基本交互任務結合而成的,有三種主要的組合交互任務:對話框、構造和動態操作。對話框用來指定信息表中的多個項;構造用來產生需要有兩個或多個位置的形體;動態操作用來修改已有的幾何形體的形狀,調整形體之間的相對位置。

1.基本交互任務(1)定位。用來給應用程序指定位置坐標,如(x,y)或(x,y,z)。定位分為兩種情況,其一是空間定位任務,此時用戶知道需要確定的位置和空間相鄰元素之間的關系,如過兩個矩形的中心畫一條直線段,這里定位任務是得到第一個矩形的中心后,立即需要得到第二個矩形的中心;其二是語義定位任務,此時用戶需要知道某一位置的(x,y)坐標值。在空間定位中用戶希望反饋顯示出屏幕上位置的正確性,而在語義定位中用戶需要準確的(x,y)坐標數值,定位任務通常還要受到維數、屏幕分辨率、開環或閉環反饋的影響。(2)選擇。選擇任務是要從一個選擇集中挑選一個元素,常用的是命令選擇、操作數選擇、屬性選擇和對象選擇等。選擇集一般分為定長和變長兩種。命令、屬性及對象類型選擇集一般是定長的,而對象調用選擇集通常是變長的。完成選擇任務有基于名字(或標識符)和位置(坐標點)兩種情況,如輸入一個命令名,從命令表中找到該命令的執行程序,并執行之。通過位置實現選擇需要分兩步,其一是把游標定位在用戶希望選擇的對象上,然后確認該對象(如改變對象顏色或增亮、閃爍該對象),即完成了選擇任務。無論是名字選擇還是位置選擇,都要考慮處理好具有層次、重疊、內存與外存交叉存取等情況。(3)文本。文本任務即輸入一個字符串,此字符串不應具有任何意義。鍵入一個命令或菜單項不是一個文本任務,而輸入一個字符串到字處理器中則是一個文本任務。文本任務的主要輸入工具是鍵盤。(4)定向。在指定的坐標系中確定形體的方向,此時需要由應用程序來確定其反饋類型、自由度和精度。定向可以通過輸入角度值或輸入兩點構成向量等來完成。(5)定路徑。這是一系列定位和定向任務的結合,與時間、空間有關。(6)定量。定量任務是要在最大和最小數值之間確定一個值。最典型的是用鍵盤輸入一個數,此外還可在標度盤、刻度尺上確定一個數,如圖2.1.1所示。圖2.1.1數值輸入工具(7)三維交互任務。三維交互任務涉及定位、選擇和旋轉。三維交互任務比二維交互任務困難得多,其主要原因是用戶難以區分屏幕上游標選擇到的對象的深度值和其他顯示對象的深度值。此外像鼠標器、數字化儀這類交互設備均為二維的,不能適應三維交互工作的需要。為了克服這類困難,我們可借助于三視圖的功能。如圖2.1.2所示,用二維的游標(短粗十字叉)選擇并拖動三維游標(對應三視圖上大的虛線十字叉)的過程,按下鼠標器上按鈕,移動二維游標的同時拖動三維游標同步運動,當三維游標確定的位置(或選擇的對象)滿足用戶要求時釋放鼠標器上的按鈕,即結束鼠標器按鈕事件,此時兩根虛線游標相交的位置即惟一地確定一個三維點的坐標。三維旋轉任務可采用圖2.1.3(a)、(b)所示的兩種方法來實現,其中圖(a)所示的是用兩個刻度尺(X向和Y向)以及一個標度盤(Z向)相結合的方法來完成;圖(b)是用放置于三個坐標平面方向上的刻度盤的方法來完成。三維交互任務常需要將三維定位、選擇和旋轉組合起來執行,如指定旋轉參考點的三維旋轉首先要進行三維定位,此時需要把圖2.1.2和圖2.1.3所示方法組合起來。圖2.1.2在三視圖中實現三維定位技術的圖例圖2.1.3實現三維旋轉的兩種方法兩個刻度尺表示繞X、Y軸旋轉,標度盤表示繞Z軸旋轉;(b)三個標度盤表示繞三根軸旋轉

2.組合交互任務(1)對話框。用于在交互過程中需要從一個選擇集中選擇多個元素時,如字符屬性有楷體、斜體,有粗體、細體,有空心字、實心字,有大小和對齊方式等。當彈出一張字符屬性對話框后,用戶可以從中選擇多項,還可以在某些項輸入用戶希望的字符或數字。有些應用還希望從多個選擇集中確定一組參數,如上面的字符屬性中希望改變字的顯示顏色,這時還需彈出一個色彩選擇對話框,從中挑選用戶希望的顏色。還有些應用要求對話框的行、列均可滾動。圖2.1.4和2.1.5是兩種典型的對話框(AutoCAD系統中的)。

圖2.1.4存圖對話框實現選擇任務的菜單在一個選擇完成后就消失了,無法做第二個選擇,而對話框可以保證多個選擇。當所有信息都輸入到對話框中之后,按下某個按鈕(如OK按鈕),對話框便消失,系統就按給定的參數或選擇的屬性執行命令。當系統執行的某個命令需要較多的信息或數據時,就應該采用對話框形式。圖2.1.5繪圖機繪圖對話框(2)構造。實現這類任務的主要方式有橡皮筋方式和約束方式。利用橡皮筋方式可以畫直線段、折線、圓、橢圓、矩形、多邊形等。圖2.1.6是用橡皮筋方式畫折線的情況,首先輸入起點,當移動鼠標器時,光標(圖中的十字線)隨之移動,線段的終點也在移動,而在當前點和光標點之間始終有一條連線(圖中的虛線),就像橡皮筋一樣隨光標移動。當用戶認為滿意后按下拾取鍵就可繪出一段直線。約束方式包括水平和垂直約束方式(也稱為正交方式)、引力場約束方式。當需要繪制橫平豎直的直線段時,運用水平和垂直約束技術可以避免由于人眼或定位設備帶來的誤差。如果用水平約束構造直線,在線段的第一點被確定后,無論光標在屏幕上如何運動,線段的縱坐標始終與起點相同,顯示的是一條(x1,y1)到(x2,y1)的直線。垂直約束的原理與此類似。作圖時,我們經常要從已有直線的某個端點或從該直線上的某點開始作一條新的直線。如果在定位時使用了網格(柵格)技術,則很容易使點與點重合,否則是很費時的。引力場約束可以幫助用戶把光標點精確地定位在直線的某個端點或直線上。引力場是一種想像的約束范圍。圖2.1.7是直線的引力場示意圖,一旦光標進入這個范圍,它就被吸引到這條直線上。由于圍繞端點的場域比較大,所以使光標與端點的重合特別容易。與引力場約束效果相近的是目標捕捉,即尋找已有圖線上的特殊點,如端點、中點、圓心、交點等。圖2.1.6用橡皮筋方式畫折線圖2.1.7直線的引力場(3)動態操作。動態操作包括物體的拖動、旋轉、縮放以及形變。拖動是指執行拖動物體的命令后,先用定位設備拾取或者由名字確定要拖動的對象,再按住鍵移動光標,則此物體將隨光標的移動而移動,就好像光標在拖動物體一樣,當移動到滿意位置后予以確認。拖動便于用戶確定或改變物體的位置。旋轉是指拾取或指定要旋轉的物體并給定旋轉中心后,物體將圍繞此旋轉中心隨光標的移動而旋轉,當旋轉到滿意位置后予以確認。動態縮放需要指定縮放中心的位置,當移動光標時,物體將以此縮放中心為基準進行縮小或放大。形變是指在確定操作對象后,拖動物體上的某個點或某條邊使物體產生形狀上的改變。形變是針對某些特定形狀的物體而設計的。2.1.2交互技術交互技術包括定位、選擇、拾取圖形、菜單、定向、定路徑、定量、文本、橡皮筋、徒手畫、拖動等技術。

1.定位技術定位技術用來指定一個坐標,這里需要確定維數,如一維、二維或三維;分辨率,即定位精度(鍵盤可以提供無限高的分辨率,而定位設備提供的分辨率有限,可通過窗口到視區的坐標變換技術提供分辨率,即將用戶坐標系中的某個區域放大,從而使屏幕上的一個像素單位與用戶坐標系中任意小的單位對應起來);點是離散點還是連續點。定位技術主要有三種:(1)圖形輸入板、鼠標器或鍵盤光標鍵控制光標定位。(2)鍵入坐標定位。(3)用光筆或叉絲定位。應用定位技術還需進一步考慮坐標系問題,是世界坐標系、局部坐標系還是設備坐標系;光標的形狀及特征(如閃爍、彩色、光強度);選擇合適的控制/顯示比率。控制/顯示比率=手的移動量/光標的移動量低比率適合于快速移動,高比率適合于微調、精確定位。一般數字化儀采用絕對定位;鼠標器、操縱桿采用相對定位,即相對前一次的移動來定位。為了提高定位速度和精度,還常采用網格(也稱柵格,作用是使圖線的端點落在網格上,其方法是將定位設備的坐標截斷在最近的網格點上)、輔助線、比例尺技術等。光標反饋和坐標反饋也是定位技術常采用的形式。

2.選擇技術選擇技術要求確定可選擇集合的大小及選擇值,這個集合可以是固定的,也可以是變長的。選擇要求有拾取設備,如光筆或任何可以模擬拾取設備的定位設備。選擇技術有以下幾種:(1)光筆選擇。(2)圖形輸入板或鼠標器控制光標拾取圖形。(3)圖形輸入板、鼠標器或鍵盤光標鍵控制光標點取菜單項。(4)鍵入名字、名字縮寫或排列的唯一序號或標識號作選擇。(5)用功能鍵作選擇。(6)語音選擇和筆劃識別。

3.拾取圖形拾取圖形是常用的可變集選擇技術。在交互式圖形系統的增、刪、改操作中,都是以拾取圖形或以拾取圖形的某一位置點為基礎的。拾取圖形的速度和精度又極大地影響著交互系統的質量。從屏幕上拾取一個圖形,其直觀現象是該圖形變顏色,或閃爍,或增亮,其實際意義是要在存儲用戶圖形的數據結構中找到存放該圖形的幾何參數及其屬性的地址,以便對該圖形作進一步操作,如修改其幾何參數、連接關系或某些屬性。下面介紹常用圖形的拾取算法。此算法是通過指點方式來拾取圖形的(其他拾取圖形的方式有矩形窗口方式、多邊形窗口方式、折線(柵欄)方式等)。算法假定:拾取點的坐標是P0(x0,y0);坐標系為二維規范化的設備坐標系(NDC:0.0≤x,y≤1.0);要拾取的圖形元素滿足:屏幕上可見,圖形顯示區域內包含拾取點的坐標,系統當前的所有圖形名集與可拾取圖形名集的交集不為空集,系統當前的所有圖形名集與不可拾取圖形名集的交集為空集。(1)點的拾取。對于在NDC中的一點P1(x1,y1),0.0≤x1,y1≤1.0,該點的顯示區域是以該點為圓心,r為半徑的一個圓形區域,r是交互系統設定的區域精度。如果(x1-x0)2+(y1-y0)2≤r2則P1點的顯示區域包含了拾取點P0,即對P1點拾取成功。(2)符號集(Polymarker)的拾取。依次判斷符號集中的每個符號參考點的顯示區域是否包含了拾取點,如該圖素的某個符號的參考點滿足點的拾取條件,則對該圖素拾取成功。這里需重復調用點的拾取。(3)直線段的拾取。若NDC中一條直線段的端點為P1(x1,y1)、P2(x2,y2),該線段的顯示區域可近似如圖2.1.8所示。P1P2的直線方程為(y1-y2)x-(x1-x2)y-x1(y1-y2)+y1(x1-x2)=0直線B1、B2的斜率為斜率為KB的直線簇可表示為y=KBx+b。若分別將P0、P1,P2代入KB的直線簇方程,得對于y1-y2=0的情況,b0=x0,b1=x1,b2=x2。如果min(b1,b2)≤b0≤max(b1,b2),則P0在B1,B2所夾的區域中。下面再判P0到直線段P1P2的距離是否小于等于系統設定的區域精度r。如果若上述兩條同時滿足,則對P1P2直線段拾取成功。(4)折線集(Polyline)的拾取。依次判斷每條直線段的顯示區域是否包含拾取點,如該圖素的某一條線段滿足拾取條件,則對該圖素拾取成功。這里需要重復調用直線段的拾取。(5)曲線的拾取。曲線在顯示輸出時,已離散成折線集,故曲線拾取的算法與折線集拾取的算法類似。(6)字符串(Text)的拾取。這里需要依次判斷每個字符的顯示區域是否包含拾取點。如圖2.1.9所示,一個矩形的字符(例如字母A)定義區域被變換到NDC空間后,成為一個任意形狀的凸四邊形。以這樣一個凸四邊形作為該字符的顯示區域判斷是否包含拾取點顯然是不方便的。我們可以用該凸四邊形的兩對邊中點連線的交點為圓心,以該交點到四邊中點距離的平均值為半徑的圓形區域作為字符的顯示區域,當字符串中某一個字符的顯示區域包含拾取點時,則對該字符串拾取成功。圖2.1.9字符的顯示區域圖2.1.10拾取點在多個圖形顯示區域中特殊地,拾取點包含在多個圖形顯示區域中。如圖2.1.10所示,P0同時落在P1P2,P3P4兩條直線段的顯示區域中,此時如何確定哪一條直線被拾取。通常采用兩種方法:①在圖形生成時就對每一個圖形確定其拾取優先級,在拾取圖形時如遇到拾取點包含在多個圖形顯示區域中的情況,只要判斷這些圖形的拾取優先級即可確定哪個圖形被拾取。②逐個地閃爍或變顏色,或增亮拾取到的圖形,讓用戶來確認,如鍵入空格鍵為非拾取圖,鍵入回車鍵為拾取圖形。(7)填充區域的拾取。依次判別多邊形邊界上的每條線段的顯示區域是否包含拾取點,如果該圖素的某一條邊界線段滿足拾取條件,則對該圖素的拾取成功。(8)三維圖形的拾取。三維圖形的拾取算法比上述的拾取算法要復雜得多,這里不作詳細介紹,此時需要考慮的問題有:①拾取空間為NDC:0.0≤x,y,z≤1.0。②拾取區域為球或立方體。③需要進行點/多邊形、點/多面體等包含性測試。下面介紹加速圖形拾取的措施。常用的加速圖形拾取的措施有三條:①過濾器法。即對可拾取和不可拾取的圖形分別加以標志,只有可拾取圖形才進行拾取判斷,對不可拾取圖形可以簡單地跳過去。②區域粗判法。如圖2.1.11所示,即對要拾取的圖形先作其外接正矩形的判斷,如拾取點包含在此矩形內,再作上述的各種圖素判斷;反之,則跳過這些圖形。③把基本圖素的拾取算法固化,即用硬件實現諸如點、直線段的拾取算法。

4.菜單技術菜單技術是常用的固定集選擇技術,在交互式圖形系統中被廣泛采用。菜單是一組功能、對象、數據或其他用戶可選擇實體的列表。菜單項的作用就是當用戶點取該菜單項時,系統就會把菜單項的內容作為當前的輸入。菜單項的內容通常為命令、命令的選項、字符、數據等。設計菜單時應注意下面的問題。(1)菜單的形式。按照菜單的出現與消失,菜單可分為固定式、翻頁式、翻動式、拉簾式、增長式、彈出式和綜合式等幾種(見圖2.1.12)。圖2.1.11粗判區域圖2.1.12菜單的基本形式①固定式。固定式一般適用于靜態菜單,菜單自始至終顯示在屏幕的某一固定區域,如圖2.1.12(a)所示。②翻頁式。菜單項按層次分頁,進入一層菜單就像翻過一頁書,如圖2.1.12(b)所示。③滾動式。如圖2.1.12(c)所示,選擇滾動箭頭可以向上或向下移動一個菜單項,上下拖動滑塊,可以上下滾動菜單窗口。把光標定位在菜單的可見部分即可選擇菜單項。④拉簾式。用戶可像拉簾子一樣拉出一個個菜單,如圖2.1.12(d)所示。拉簾式菜單有從水平菜單條往下拉出的下拉式菜單和從豎直菜單條向左、向右拉出的平拉式菜單等。⑤增長式。這種菜單的顯示好像是慢慢長出來似的,如圖2.1.12(e)所示。⑥彈出式。這是目前最常見的菜單出現方式,菜單好像是彈出來的,如圖2.1.12(f)所示。為了增強彈出式菜單的真實感,往往給菜單邊界加陰影邊框。⑦綜合式。上述幾種菜單形式或其派生形式的結合。如固定式與翻頁式的結合、固定式與拉簾式的結合、拉簾式與單向彈出(向左、向右彈出)式的結合(如常見的彈出式逐級顯示菜單)等。翻頁式與滾動式結合的板式菜單也是常用的菜單形式,如圖2.1.13所示。圖2.1.13板式菜單(2)菜單的放置。菜單可以顯示在屏幕上,稱為屏幕菜單;也可以定義在臺板上,稱為圖形輸入板(或數字化儀)菜單;還可以定義在設備的按鈕或功能鍵上,稱為按鈕菜單。對于屏幕菜單,當菜單項較多時,應設計成多層菜單。設計多層菜單時要確定菜單的深度(即層數)和寬度(即每層的菜單項數)。實踐表明,像二級或三級這樣層次不多的菜單會提高選擇的速度和正確性。菜單的形狀一般都是長條的,也有其他形狀,如圓餅形。菜單的顯示可以是文字形式,也可以是圖標形式。圖標形式的菜單具有形象、直觀的突出優點,已獲得廣泛的應用。菜單項的大小也直接影響選擇的速度和正確性,較大的菜單項可以加快選擇速度,但要占更大的屏幕域;較小的菜單項可以在一個固定的區域內顯示多個菜單,但在選擇時會引起更多的失誤。因此用小菜單項節省空間還是用大菜單項提高選擇速度、減少失誤,應該在設計時權衡考慮。(3)菜單項的順序。菜單項可以按不同的順序排列,如按字母順序排序;按功能分組排列;按使用頻度排列,最常用的放在前面;按重要程度排列,最重要的排在前面。這些排列方法可以組合起來使用,如按功能分組的菜單,組內的菜單項仍按字母順序排列,而組與組之間按使用頻度排列。對于同一個系統,所有的菜單都按同一種風格進行排序是非常重要的。實踐證明,按功能分組排序的菜單對用戶最有幫助。實現菜單項選取的基礎是定位技術。在組織菜單時,每個菜單項所處的行、列位置及菜單項的大小決定了該菜單項的拾取區域。當拾取點落在該區域時,便是選擇該菜單項。(4)被選菜單項的著重表示。被選菜單項應著重表示。當光標進入菜單區時,光標所在的菜單項就應著重顯示;當光標在菜單上移動時,光標進入哪個菜單項,哪個菜單項就被著重顯示,光標離開這個菜單項,這個菜單項就恢復成原先的正常顯示;當用戶沒有作出任何選擇而把光標移出菜單區時,菜單項就都恢復成原先正常的顯示。對于彈出式或下拉式菜單,當光標移出時,菜單就自動消失。著重表示被選菜單項的方式較多,如有的高光顯示或反轉顯示;有的菜單項前帶圓形或方形按鈕,按鈕開關的狀態表示選擇的結果;有的菜單是帶確認號的(如對號),有確認號的項表示被選中,這種菜單可以進行多種選擇;有帶移動指針(箭頭狀)的菜單,指針隨光標移動,指針的位置就是當前所選項;還有帶專門選擇區的菜單,選擇的結果放在選擇區中。

5.定向技術定向即是在一個坐標系中規定形體的一個方向,此時需要確定坐標系的維數(即自由度)、分辨率、精度和反饋類型,需要的設備是數值器、定位器、鍵盤。定向技術有兩種:(1)用度盤或操縱桿控制方向角。(2)鍵入角度值或輸入兩點構成向量,取向量的方向角。在使用定向技術時要考慮坐標系、旋轉中心、觀察效果等問題。坐標系一般取世界坐標系或局部坐標系,旋轉中心可以是坐標系的原點,也可指定物體中心點或任意參考點作為旋轉中心,并在屏幕上用X、Y、Z的正方向表示出旋轉效果。

6.定路徑技術定路徑即在一定的時間或一定的空間內確定一系列的定位點和方向角。雖然路徑可以由定位和定向這兩個更基本的交互任務組成,但由于定路徑中要考慮現實世界中的一個重要參數——時間,因此仍把它列為基本的交互任務。這時用戶關心的不是某一點及其方向,而是一系列的定位點、方向值及其次序。產生路徑的技術與定位和定向的技術一致,應用方面的要求有定位點的最大數目和兩個定位點之間的間隔。計算間隔一般采用兩種方法:基于時間和基于距離。基于時間是按時間采樣,基于距離是按相對位移達到某個距離采樣。距離采樣需考慮維數問題和分辨率問題以及響應形式。響應形式可以是平滑的曲線,也可以是帶有標志的一系列定位點。

7.定量技術定量技術在交互過程中應用很多,而且是必不可少的。用戶經常需要輸入一個數值或指定一個數量,完成這種任務需要確定精度(單位)。定量技術有:(1)由鍵盤輸入數值。(2)調節電位器的阻值產生相應的數值。(3)用光標移動屏幕上的標度盤或刻度尺上的指針。(4)用上下翻轉數字的計數器選擇數值。(5)手寫數字的識別或語音識別。

8.文本技術文本技術需要確定字符集及字符串的長度。實現文本的技術有:(1)鍵盤輸入字符。(2)用菜單選擇字符。(3)語音識別。(4)筆劃識別。在交互過程中,用戶還可以用其他辦法來模擬字符鍵盤,如在屏幕上產生一個鍵盤。

9.橡皮筋技術橡皮筋技術主要針對變形類的要求,動態地、連續地將變形過程表現出來,直到產生用戶滿意的結果為止,其中最基本的工作是動態、連續地改變相關點的設備坐標。常用的形式有橡皮筋線、帶水平或垂直約束的橡皮筋線、橡皮筋圓、橡皮筋多邊形、橡皮筋棱錐等。10.徒手畫技術徒手畫技術用以實現用戶任意畫圖的要求。該技術的實現分為基于時間和基于距離采樣取點,然后用折線或擬合曲線連接這些點,生成圖形,如果是粗筆畫,則亦可用區域填色技術跟蹤筆劃走過的區域。

11.拖動技術拖動技術是將形體在空間移動的過程動態地、連續地表示出來,直至形體的位置滿足用戶的要求為止。這種技術常用于部件的裝配和模擬現實生活中的實際過程。2.2交互輸入控制根據圖形軟件標準GKS的規定,圖形輸入設備從邏輯上分為定位、筆劃、取值、選擇、拾取、字串六種。不過實際的圖形輸入設備往往是某些邏輯輸入功能的組合。在用六種邏輯輸入設備設計一個交互系統時,應用程序必須指定用于輸入數據的物理設備類型及其邏輯分類,其他參數取決于輸入數據。在應用程序和輸入設備之間,輸入控制的方式是多樣的,這些方式又取決于程序和輸入設備之間是如何相互作用的。應用程序和設備之間的工作方式有請求、采樣、事件三種。對這三種輸入控制方式都可定義相應的輸入命令,而且圖形交互系統允許對每一種邏輯設備執行相應的輸入操作。例如,可設置如下命令:set--locator--mode(ws,device--code,input--mode)這是用來設置定位器輸入方式的命令,其中input--mode取值為0、1、2,分別對應請求、取樣、事件三種方式;ws是工作站的標號;device--code是用來指定被采用的物理定位設備的設備碼,常用設備編碼如表2.2.1所示。表2.2.1常用物理設備的編碼命令set--stroke--mode(4,2,event)就是把4號工作站上的圖形輸入板設成事件輸入方式,一個設備在同一時刻只能被設成一種方式,多臺設備可同時在不同輸入方式下工作。

1.請求方式此時,只有用輸入方式設置命令(或語句)對相應的設備設置成需要的輸入方式后,該設備才能作相應的輸入處理。如:request--locator(ws,device--code,x,y)該命令是把定位器置成請求輸入控制方式,其中x,y用來存儲一個點的坐標值。在輸入命令中,每一種邏輯設備所包括的參數是和輸入數據類型有關的,如在請求方式下的筆劃輸入是:request--stroke(ws,device--code,n,xa,ya)這里輸入的n個點的坐標存放在數組xa和ya中。類似地在請求方式下的字符串輸入是:request--string(ws,device--code,nc,text)這里nc指定了輸入字符串的長度(即字符個數),輸入的字符串存放在字符緩存text中。為了能在應用程序中拾取到輸入的圖段,需要用下列命令設置圖段的標志,即:request--pick(ws,device--code,segment--id)用于請求方式下的輸入命令還可以包括其他參數,如有些應用需要對圖段中的圖素設置標志,如線段、圓、矩形等;也可對圖段設置標號,以加快對圖段的搜索。應用程序向輸入設備發出輸入請求命令后,就等待用戶輸入數據,當用戶輸入操作完成后,應用程序便得到輸入的數據。為使用戶知道應用程序處于等待輸入數據狀態,一般在應用程序請求輸入命令發出之前先顯示一條提示信息,提示用戶開始輸入操作。請求方式一次只能對一個輸入設備進行。

2.采樣方式一旦對一臺或多臺設備設置了采樣方式,立即就可以進行數據輸入,而不必等待程序中的輸入語句。如操縱桿已被置成在采樣方式下的定位設備,則操縱桿的當前位置坐標值立即就被存儲起來,當操縱桿的位置在變化時,就立即用當前位置的坐標值來代替以前位置的坐標值,當應用程序一遇到采樣命令,就把相應物理設備的值作為采樣數值。設置定位設備為采樣方式的命令是:sample--locator(ws,device--code,x,y)對其他邏輯設備設置為采樣方式的命令與此類似。采樣方式允許用戶同時使用多個設備且由應用程序不停地測試輸入設備,隨時讀入用戶輸入的數據,故其實時性好。

3.事件方式在事件輸入方式中,輸入設備與應用程序是異步工作的。應用程序先將輸入設備置成事件方式,并允許由設備輸入。一旦設備是可輸入的,不管應用程序是否準備好接收數據,用戶都可以在這個輸入設備上進行輸入操作了,而且在用戶輸入數據的同時,應用程序仍可以不停地執行。任何一個輸入操作的數據都將作為事件并按其發生的次序被送到一個輸入隊列即事件隊列中。在隊列中的輸入數據可按照邏輯設備類型、工作站號、物理設備編碼進行檢索。事件輸入方式避免了請求方式和采樣方式中存在輸入數據丟失的問題。在應用程序中,檢索事件隊列可用下述命令:await--event(time,device--class,ws,device--code)time是應用程序設置的最長等待時間,當事件隊列為空時,事件處理進程就掛起,直到最長等待時間已過或又有一個事件進入,才恢復事件處理進程。若在輸入數據之前,等待時間就已過去,則參數device--class就返回一個空值。當time被賦成零或當隊列為空時,程序就立即返回到其他的處理進程。當用await--event命令使某設備進入事件輸入控制方式,而且事件隊列為非空時,在隊列的第一個事件就被傳送到當前事件記錄中,對于定位器、筆劃設備,在device--class參數中存放了它們的類型。為了從當前事件記錄中檢索一個輸入的數據,還需要采用一個事件輸入方式命令,其格式類似于請求、取樣方式的命令,但在此命令中不需要有工作站和設備碼參數,因為在數據記錄中已有這些參數。用戶可用下述命令從當前事件記錄中得到一個定位數據:get--locator(x,y)下述的一段程序是用await--event,get--locator命令從1號工作站的圖形輸入板上輸入一個點集,并用直線段連接這些點:set--stroke--mode(1,2,event);;repeat; await--event(60,device--class,ws,device--code);untildevice--class=stroke;;get--stroke(n,xa,ya);;polyline(n,xa,ya);這里repeat-until循環為了把從其他設備來的在隊列中的數據濾掉;設置的等待時間為1分鐘,以保證輸入數據接收完畢。當然在事件方式下,若只有這臺圖形輸入板處于激活狀態,那么這個repeatuntil循環就不必要了。在事件方式下,同時可應用多臺輸入設備以便加快交互處理。下面的程序是從鍵盤輸入屬性和從圖形輸入板輸入數據畫折線:set--polyline--index(1);;set--stroke--mode(1,2,event);(把圖形輸入板設成筆劃設備)set--choice--mode(1,7,event);(把鍵盤設成選擇設備)repeat;await--event(120,device--class,ws,device--code);ifdevice--class=choicethen;begin;get--choice(option);;set--polyline--index(option);;end;else;ifdevice--class=strokethen;begin;get--stroke(n,xa,ya);;polyline(n,xa,ya);;end;untildevice--class=none;

4.輸入控制方式的混合使用上述三種輸入控制方式可以混合使用。下面給出一個在不同輸入控制方式下同時應用不同的輸入設備的情況,其目的是要拖動一個形體在屏幕上運動,當達到最終位置,可按一鍵來終止這種拖動。這里筆的位置是由采樣方式得到的,按鈕的輸入存放在事件隊列中。begin;set--locator--mode(1,3,sample);(把光筆設成定位設備)set--choice--mode(1,7,event);(把按鈕設成選擇設備)repeat;sample--locator(1,3,x,y);(讀入筆的位置)(把形體平移到(x,y)處,并輸出形體,此處這段程序略)await--event(0,class,ws,code)(檢查輸入的事件隊列)untilclass=choice(如該按鈕是按過鍵時,則停止)end2.3用戶接口的設計1.用戶接口的設計目標(1)提高學習速度。學習速度是一個與用戶熟練掌握圖形交互系統的使用方法所花時間有關的量。這是一個相對量。只有10個交互命令的系統當然要比有1000個交互命令的系統容易學,但在為一個功能豐富的系統設計用戶接口時,如果違背常理,用10個難學的命令去實現的話,可能也不會提高學習速度。(2)提高使用速度。使用速度是一個與那些熟練的操作員用系統完成某個特定任務所需時間有關的量。學習速度與使用速度是一對矛盾。要同時滿足這兩個要求,最常用的方法是在用戶接口系統中提供一個供初學者學習的基本命令集,最好用菜單實現,易于學習。而整個系統的所有命令,則可由鍵盤或功能鍵輸入,以提高使用速度。(3)降低操作失誤率。操作失誤率是指每次交互操作的平均失誤次數。這一指標也影響到學習速度和使用速度。(4)增強記憶。交互系統應能幫助用戶在長期不使用該系統后,一旦接觸,就能盡快地回憶起各個交互操作。(5)增強對潛在用戶的吸引力。這是市場方面的一個目標。

2.用戶接口的設計步驟(1)概念設計。定義圖形系統中必須由用戶掌握的基本概念,包括對象定義、對象屬性定義、對象關系定義和對象操作定義。例如,在簡單的編輯軟件中,操作對象是字符、行和文件;文件的屬性是文件名;文件由一系列字符行組成,字符行由一系列字符組成;行的操作有插入、刪除、移動和拷貝,文件的操作有生成、刪除、換名、打印和拷貝。概念的描述通常是借助于一些類似于用戶已熟悉的東西,如打字機、繪圖板、工作臺、公文夾等。要注意的是,這種類比的方法對理解用戶接口的概念雖然有幫助,但過分牽強附會,用這種方法表達圖形用戶接口的某些更高級的概念是有害的。(2)功能設計。規定用戶接口的詳細功能。對于每個操作,說明需要什么參數,會出現什么錯誤,如何處理可能產生的錯誤,會產生什么結果,會給出什么反饋等。這里要注意的是,功能設計也稱為語義設計,它只定義交互操作的含義,而不是交互操作的順序或實施這些操作的設備。(3)交互順序設計(語法設計)。定義輸入和輸出的順序。對于輸入,是按一定的規則將各個詞組組成一個完整的句子。詞組可以看成是通過交互技術輸入到系統中的不可分割的最小單元。例如,選菜單操作是一個詞組。雖然這一操作可進一步劃分成移動鼠標器和按鍵兩個動作,但這兩個動作都不能單獨向系統提供有意義的信息。在下面的輸入模式和語法中,我們將具體介紹與輸入模式有關的各種語法規則。對于輸出,是定義顯示屏的2D和3D的布局,以及這種顯示形式的臨時變化。和輸入的最小單元是不可分割的一樣,輸出的最小單元也是不可分割的,否則將失去意義。例如,在電路的輔助設計系統中,電阻符號是有意義的,而組成這個電阻符號的線條就沒有什么意義。字符串可以向人們傳遞某些信息,同樣,在圖形系統中,符號和圖形也能向人們傳遞某種有意義的信息。(4)聯結設計(詞法設計)。定義如何由單詞形成一個個有意義的詞組。對于輸入,單詞可以看成是聯結到系統上的各種輸入設備,聯結設計就是選擇或設計前面我們介紹過的交互技術。對于輸出,單詞可以看成是基本圖形軟件包提供的各種幾何形狀(如直線、圓、字符)以及它們的屬性(如色彩、字體)。聯結設計就是把這些圖素及其屬性組合起來,形成圖標和其他符號。以一個簡單的家具布置程序為例說明上述設計步驟。在概念設計階段,確定操作對象是一間房子和要放到這間房子里的家具;對象之間的關系是房子要裝這些家具;對家具的操作有生成、刪除、移動、旋轉、選擇;對房子的操作有存和取。功能設計是對這些操作的詳盡描述。輸入的順序設計將是先選擇操作對象,再選擇對這個對象實施的操作。輸入時的聯結設計將是用鼠標器從菜單中選擇操作命令,選擇家具,提供家具放置的位置。輸出的順序設計是定義顯示屏幕的布局,將屏幕劃分成幾個不同的區域,確定菜單區、提示區、出錯信息顯示區。輸出時的聯結設計包括字體、線寬、線色、填充域顏色的定義,以及由基本圖素形成家具符號的方法。3.用戶接口的風格(1)所見即所得。這是交互式圖形學的基礎。屏幕上用戶與之交互的內容,就是交互系統最終要生成的圖像。大多數交互式圖形系統都具有所見即所得這樣的風格。現在許多文字編輯軟件也有所見即所得的接口。例如,MSWindows的編輯器WRITE中,要用黑體打印的文字在屏幕上顯示時也是黑體。而在所見非所得的系統中,我們見到的是插在文字之間的控制符。例如文字串Inthissentence,weshow@b(bold),@i(italic),and@ub(underlinedbold)text.

的輸出結果是:

Inthissentence,weshowbold,italic,andunderlinedboldtext.

在這樣的所見非所得的系統中,用戶必須用腦子在控制符和結果之間來回切換,在輸入過程中很難確定這些控制符是否會轉換成真正需要的輸出結果。所見即所得也受到一些限制。比如,當顯示器的分辨率、大小、色彩與硬拷貝設備不同時,很難保證完全匹配。更重要的是,一些系統不能實現完全的具有所見即所得風格的接口,例如,一般文字處理系統中,插在文字間的分頁符輸出時是沒有的,但卻在屏幕上顯示出來了,這就違背了所見即所得的原則。(2)直接操作。直接操作是指將可以操作的對象、對象屬性、對象關系都在屏幕上顯示出來,用鼠標器在它們上面進行某個運作,達到實行某種操作的目的。這樣,就無需用選菜單或鍵入命令這種傳統的方式實行某個操作了,而是隱含在各種動作中。在屏幕上顯示的可能是文字,如對象的名字、屬性等,也可能是更為一般的圖形或圖像,如圖標(icon)。圖2.3.1顯示了Macintosh使用的一些直接操作。這里,磁盤和文件都表示成圖標,從一個磁盤拖動文件的圖標到另一個磁盤,就實現了文件的拷貝,拖動到垃圾筒就實現了文件的刪除。圖2.3.1Macintosh屏幕可以說,直接操作是圖形用戶接口的獨特風格,易學易見。但對熟練的用戶來說卻又顯得比較慢。例如,打印文件A,要先找到文件A的圖標,定位選擇,再拖到打印機圖標上。找文件A可能還會用到卷滾條。如果用戶知道文件名,用“prA”命令就快多了。所以菜單命令、鍵盤命令和直接操作并存是當今用戶接口的特點。對話框也是一種直接操作。指點對話框中的某個文字域,就可以在這個域中輸入文字或數據;也可以在列表中選擇有限的域值。(3)圖標化用戶界面。圖標是操作對象、對象屬性、對象關系、動作或某些概念的圖形表示。用戶接口的設計者可以選擇文字表示某個概念,也可以用圖標表示這個概念。圖標和文字,哪個更好,很難說得清楚。但要注意的是,是否使用圖標與直接操作沒有任何關系,對文字也可以進行直接操作。圖標具有形象、直觀(精心設計的圖標比文字更易于識別其含義)、占屏幕空間小、不受語種限制等優點。設計圖標時應遵循易識別、易理解、易記憶、易辨別等原則。用圖標表示操作對象比較容易,可用其示意簡圖表示。對于對象的屬性,如調色板、線寬、線型、紋理圖案、字體等,也可以用圖表示出來。但對于操作(動作),也就是命令,需要精心設計其圖標。其設計方法有三種:①用實現操作的現實物品表示命令圖標。如圖2.3.2所示,用剪子表示圖形的剪切,用橡皮表示圖形的刪除等。②用命令執行前后的狀態表示命令圖標。如圖2.3.3所示,用方塊表示圖形幾何變換前后的情況。③用抽象的動作圖形表示命令圖標,如圖2.3.4所示。圖2.3.2用實現操作的現實物品表示命令圖標圖2.3.3用命令執行前后的狀態表示命令圖標圖2.3.4用抽象的動作圖形表示命令圖標(4)其他對話形式。還有一些既適合圖形交互接口,又適合其他軟件的對話形式。如菜單、命令語言、自然語言對話、問答式對話等。①菜單。菜單廣泛應用于圖形系統和非圖形系統。菜單的優點在于系統的命令都用菜單的形式顯示出來了,用戶見到的,實際上是他早已熟知的字符串或圖標。選擇菜單就可以執行命令,而不用去回想一個個命令,再鍵入計算機。菜單減少了用戶的記憶,因此對新手特別有吸引力。②命令語言。命令語言是一種與計算機實現交互作用的傳統方法。這一技術可以容納大量的命令,而不像菜單那樣受被選集元素個數的限制,因此易于擴充命令,可快速輸入命令。學習時間是命令語言的主要問題,需要鍵盤輸入是使用命令語言的不利因素,輸入的失誤率較高也是命令語言容易產生的問題。命令語言有它的語法,用戶必須按照系統事先設計好的語法來輸入命令。每一個命令都有一個特定的由程序執行的動作,完成一定的功能。例如rotate-x20-y10-z45表示將當前的操作對象繞X軸旋轉20°,繞Y軸旋轉10°,繞Z軸旋轉45°。命令語言一般由命令動詞即關鍵字(如rotate)、操作數(如20、10、45)、命令行參數(如-x,-y,-z)、分隔符(如空格、逗號、終止符、回車等)等四部分組成。③自然語言理解。這是作為交互系統的最高目標提出來的。如果計算機能理解我們用日常語言鍵入的或說出的命令,那么人人都可以用計算機了。然而,目前具有大詞匯量的語音識別系統必須經過專門訓練才能識別特定用戶的聲音,還會產生失誤。鍵入長句子是一件煩人的事。一般說來,自然語言理解系統不限制命令集的大小,所以如果用戶企圖要系統做一些不可實現的事,就會降低系統的性能,使用戶喪失對系統的信心。這個問題可以通過限制自然語言理解系統的知識域來解決,使用戶了解系統的能力,不發出過分的請求。交互式圖形系統的自然語言語音輸入方式如果與其他對話方式結合,將會大大地提高交互效率。使手和聲音同時或交替工作,就更像現實世界中我們的工作方式:先用手指著某個東西,再談論它。用戶要移動某個物體,可以在指點它的同時說“移到…”,再指點另一個地方說“那兒”。④問答對話。這是計算機入門的一種交互方式。計算機在顯示器上顯示出問題,等待用戶回答。用戶可用鍵盤輸入答案。通常答案是受限制的,而且就顯示在屏幕上,可由用戶挑選。這種對話方式的缺點在于不能返回到前面的問題來重新回答,而且在用戶回答當前問題時,不知道以后還會出現什么問題。

4.用戶接口的設計原則(1)保持一致性。保持交互系統的一致性,是指在設計系統的各個環節時,應遵從統一的、簡單的規則,保證不出現例外和特殊情況。保持系統一致性的基本目的是能讓用戶由系統某個方面的知識推廣到其他方面。當系統不按照某個可以理解的、合乎邏輯的方式進行時,一致性可以使用戶免于受挫。實現一致性的最好方法是自頂向下仔細地設計整個系統。保持一致性的例子如鍵盤上的鍵(如回車、制表、刪除等)總是保持某一功能不變,無論在任何情況下鍵入都有效;全程命令(HELP、STATUS、CANCEL等)隨時可以發出;常用命令(如MOVE、COPY、DELETE等)可以對系統中的任何操作對象起作用;使用同樣的符號、顏色表示同一類信息;系統狀態信息總是在一個合乎邏輯的固定地方顯示等等。要注意的是,一致性會與系統的其他設計原則相沖突。例如,把一個代表文件的圖標拖到垃圾筒圖標上,就執行了刪除文件的命令。那么如果把這個文件的圖標拖到打印機圖標上,會發生什么呢?是否在執行了打印命令后,為保持與拖到垃圾筒的功能一致而執行刪除命令呢?顯然是不能刪除的。比保持一致性更高、更一般的設計原則是:按用戶認為最正常、最合乎邏輯的方式去做,這比保持單純的一致性更重要。(2)提供反饋。反饋是人機交互的一部分,設計用戶接口時必須考慮到各種反饋,并在程序中實現。根據設計過程中的功能設計、順序設計(語法)和聯結設計(詞法)的三個步驟,可以給出三級反饋。設計人員必須有意識地考慮到每一級,并明確地決定是否提供反饋,以何種形式給出反饋。①最低級的反饋(對應于聯結設計)。用戶在交互設備上的每個動作都應立即產生明顯的反饋。如在鍵盤上鍵入字符時應在屏幕上有回顯,鼠標器的移動應對應于光標的運動。②二級反饋(對應于順序設計)。當系統接受輸入語言(命令、位置、操作對象等)中的每個詞組時,應提供反饋,被拾取的物體或被選中的菜單項要著重顯示,使用戶知道它的動作已被接受。在整個句子輸入完畢且被斷定是正確時,也要給出反饋,但這種反饋通常是在執行這個命令需要一兩秒以上的時間時才給出。③功能級反饋(對應于功能設計)。這是最有用且最受用戶歡迎的一種反饋形式。它告訴用戶,系統所發出的命令已執行完了。通常是將操作結果顯示出來。在執行某個費時的操作過程中,要給出某種反饋,表明計算機仍在執行中。這樣的反饋有多種形式,最能引起用戶注意的是,用一個標度尺指示命令完成的百分比,使用戶知道何時能完成這個命令的操作。(3)盡量減少失誤的可能性。要盡可能地減少用戶的操作失誤,為此,要注意兩點。一是使系統只提供當前有效的菜單命令,引導用戶只在有效的范圍內工作,不讓用戶做不能做或不允許做的事。例如:·不提供會產生“非法選擇”、“無效命令”等反饋信息的菜單項。·在沒有東西可刪除時,不讓用戶有機會選擇“刪除”命令。·如果操作對象不是一個字符串,就不能讓用戶對這個操作對象改變字體。·如果剪切板是空的,不要讓用戶做“粘貼”操作。·如果沒有選擇任何東西,就不要讓用戶做“拷貝”操作。·在當前被選的物體不是曲線時,就不要讓用戶選擇曲線光順的命令。在上述這些情況下,系統就應該使這些不可用的命令項隱藏起來,如用灰色代替黑色,告訴用戶這些菜單項目不可用。二是盡量避免副作用,不要產生用戶不期望的結果。典型的副作用是打印命令刪掉了被打印的文件。(4)提供出錯恢復。有四種出錯時的恢復方法:復原(UNDO)、中止(ABORT)、取消(CANCEL)和校正(CORRECT)。①復原。最嚴重的錯誤是出現在功能上。用戶錯誤地執行了一個或多個命令,得到了一個預料之外的結果,這時就需要“復原”到命令執行前的狀態。有兩種復原方式:單級復原和多級復原。單級復原只恢復到上一個命令執行前的狀態。“復原”本身也是一個命令。所以如果緊接著“復原”命令之后再執行一次“復原”命令的話,就等于沒有做恢復工作。多級復原是在前面執行過的命令棧上進行操作。執行過的命令都存入棧中,根據棧里存放的命令逐一做復原工作。有時限于棧的大小,一個工作段工作時,就將棧清空。對應于“復原”命令,還有一個“重做(REDO)”命令,把復原以后的狀態通過重做再恢復過來,以防止用戶復原過多。一般是對當前發出的復原命令可以執行重做命令。“復原”和“重做”命令都不存放到命令棧中。有兩種形式的復原設計方法。一種是在某個命令執行完且執行結果顯示在屏幕上之后,向用戶提問是接受還是拒絕,用戶在發出一條命令之前,必須做出選擇。這種復原形式叫做“明確接受,明確拒絕”,通常加在一些危險的操作后面,強迫用戶在確定接受之前再想一下。另一種復原形式是提供復原命令,這種形式可能更為可取,因為在拒絕一個命令的執行結果時才需要采取行動,發出下一條命令就隱含著接受了上一條命令的執行結果。這種形式叫做“隱含接受,明確拒絕”。不管怎樣提供“復原”功能,都需要額外的編程,尤其是對那些要改動數據結構的命令,“復原”工作更難。一種容易的、但不太令人滿意的方法是:并不提供“復原”功能,只是在命令執行前讓用戶確認是否真的要執行。刪除文件時常遇到這種情況。②中止。在命令執行過程中,用戶就有可能意識到出現了失誤。這時就需要“中止”命令,以便中途打斷正在執行的命令。像“復原”命令一樣,“中止”命令也需要把系統恢復到命令執行前的狀態,在這個意義上,可以把“復原”和“中止”看成是相同的命令。③取消。在用戶為執行某個命令而輸入所需要的參數時,會突然發現自己并不想執行這個命令。這時需要“取消”這個命令,回到輸入前的狀態。窗口系統的對話框和填充板中都有“取消”命令,以保證用戶在輸入過程中發現錯誤時,可以恢復原狀。“取消”命令也可以看成是一種特殊的“復原”命令,因為它也使系統回復到當前命令的最初狀態。④校正。在用戶輸入參數時,往往會出現失誤,這時用戶總是希望能簡單地把錯誤校正過來。不同的對話形式決定了校正工作的難易。用對話框或填充板時,最容易修改自己的輸入和選擇。命令語言輸入也可以校正,但必須用〈BACKSPACE〉鍵刪除到出錯的地方,再重新輸入。用問答對話方式和菜單方式輸入時,就不那么容易校正了。(5)面向多層次用戶。交互式圖形系統要面向各種層次的用戶,使毫無經驗的新手、經驗不多的用戶,直到熟練用戶,都能找到適合自己的交互手段。使系統能容納多層次用戶的方法是:提供加速鍵,增加提示信息,提供幫助信息,可擴展及可隱藏復雜功能等。①加速鍵。新手通常對菜單、對話框和其他能提供提示信息的對話形式感到很舒服,因為提示信息會告訴他們該做什么和該學什么。但熟練用戶注重的卻是操作速度。這就需要用功能鍵或鍵盤命令,即用加速鍵代替較慢的交互手段。加速技術有:用單字母命令代替全名命令或鼠標器選擇菜單;連擊鼠標器上的鍵(如按一下表示選擇文件,按兩下則表示打開文件);對菜單項編號,直接鍵入菜單項號碼;用命令行一次輸入一串命令及其參數等。②提示。提示是建議用戶下一步做什么,這與反饋有所不同。熟練用戶不希望有太多的提示信息,因為提示信息過多會降低系統的速度,占屏幕空間,甚至煩人。很多交互系統提供多級提示方式,由用戶控制提示信息量。提示的形式有多種,最直接的是顯示信息,明確地向用戶解釋下一步該做什么。其他的形式如在需要輸入一個數據時顯示刻度尺或標度盤,在需要輸入字符串時顯示帶下劃線的閃爍光標等。③幫助。幫助信息可以讓用戶對系統的基本概念、典型任務、各種命令使用方法、交互技術等有更好的了解。最理想的是,幫助信息能在交互過程中按某一固定方式隨時被調出來顯示,且能容易地返回到調出幫助信息時的命令執行狀態。幫助信息應與當時的操作狀態相對應。如果在系統等待命令輸入時調用幫助信息,則列出系統中當前能輸入的所有命令。如果在一個命令鍵入后調用幫助信息,則顯示有關這條命令的詳細信息。一個簡單的調用幫助信息的辦法是在屏幕上指點希望取得幫助信息的對象,再按〈HELP〉鍵。這個對象可能是菜單項、狀態指示器、窗口標題欄、卷滾條或已生成的物體。即使有提示和菜單,提供幫助信息還是必要的,因為它為用戶提供了一個更多更詳細地了解系統的機會。就是特別熟練的用戶,在系統龐大而復雜時也會忘記某些細節。④可擴展。使用戶接口具有擴展性,是指允許用戶在原有命令集中增加新的命令,以擴充用戶接口的功能。宏定義是一種擴充功能的方法。在宏定義中,用戶的操作過程保存在一個跟蹤文件中,可以調出來按順序進行。用戶用編輯命令可以建立這種宏文件。⑤可隱藏復雜功能。把復雜功能隱藏起來不讓使用,是新手們學習系統基本功能的很好方法。這樣,不用指定選項,不用學習不常用的特殊命令,不用經歷復雜的啟動過程就可以開始實際的工作。有些命令常常會有很多可選參數項。對于這種命令,就需要簡化,提供合理的默認值代替任選參數項。簡化后的命令可以做成一個小的“初學者工具箱”。例如在畫圓形百分圖的程序中,用戶指定幾個必要的參數后就可以按默認值畫出百分圖。但如果用戶對這個百分圖不滿意,那他可以修改圓餅的半徑和每個扇形的顏色或紋理,可以加注釋、改變字體和文字大小,可以改變數字顯示位置等。這些在開始畫百分圖時不應強迫用戶去做。隱藏復雜功能命令的另一個策略是:復雜的、高級的命令只有通過鍵盤或功能鍵才能執行。這樣可保持菜單更小,系統更簡單。(6)盡量減少要記憶的內容。要盡量減少用戶不必要的記憶。如在繪圖系統中,用數字代號表示物體,而不要用名字;拾取物體或圖標就不需要記憶。重要的是盡可能地喚醒用戶的識別而不是記憶。

5.輸入模式和語法在圖形系統中,模式就是一種狀態,在這種狀態下,用戶可以完成交互操作中的某些任務。例如:·命令輸入模式。在命令輸入模式下,只有那些對當前被選擇的對象來說是可以執行的命令才允許執行。·對話框模式。在對話框模式下,只允許填寫對話框或執行對話框中的命令。輸入模式分有害模式和有用模式兩種。要防止系統進入有害模式,因為當系統進入有害模式后,運行時間會很長,甚至出不來。有害模式沒有什么用,與任何操作對象無關,用戶不知道現在是處在何種狀態,不知道如何轉到自己希望的模式去。有害模式只能把用戶搞糊涂。有用模式為用戶提供的是簡單明了的命令集或菜單,提供提示或幫助信息,可以減少用戶的記憶。命令或菜單按某種方式有機地組織起來。讓用戶用起來得心應手。有用模式會明確地顯示當前的狀態,提供反饋信息,顯示當前哪些命令可用,有明顯的、簡單的、快速的方法從一種模式退出來進入另一種模式。窗口系統提供了視覺效果好的有用的模式,因為每個窗口代表一種模式,激活窗口的操作就能從一種模式切換到另一種模式。對用戶接口的輸入模式產生主要影響的是命令語言的語法。下面介紹三種語法及其相應的輸入模式。(1)前綴語法。以下形式的語法為前綴語法:命令,參數1,參數2,…,參數n在前綴語法中,一旦指定了命令名,用戶就被封鎖在這種命令狀態,按指定的順序輸入各個參數,執行命令。這時的錯誤校正機制非常重要,否則的話,選擇命令的用戶就不得不進行可能會是很長的參數輸入。在前綴語法中,可以把參數從命令中分離出來,先發出不帶參數的命令,再輸入任意組參數,達到一個命令多次執行的目的。例如刪除物體的命令:Delete--object(建立命令模式)object1object2…objectn其他命令(建立另一個命令模式)Delete--object建立了一個刪除命令模式,在這種模式下,被選擇的物體都將被刪除,直到建立另一個命令模式。(2)后綴語法。把前綴語法中的參數提出來,用設置參數的命令在選擇執行命令之前預先設置參數,這就構成了后綴語法。如前綴語法的命令:Draw--line,point,point,line--style,line--thickness可以重構為:Set--attributesattribute--values(設置屬性值,此命令只在當前屬性值不合適時執行)Draw--linepoint,point或者更進一步:Set--attributesattribute–values (設置屬性)Select--pointpoint (選擇起點)Select--pointpoint (選擇終點)Draw–line (畫線)后綴語法在用定位設備交互時特別方便,因為人們習慣于先指定操作對象,再確定要做什么。在后綴語法中,當前被選對象這個概念非常重要,命令總是施加在當前被選對象上,而且對同一個當前被選對象,可以執行多個命令。完全不帶參數的命令并不是最理想的。如在上述的畫線命令中,先指定兩點,再告訴系統用直線連起來,這就失去了橡皮筋交互畫線的能力。(3)混合語法。在混合語法中,無論用戶是先發命令再指定操作對象,還是先指定操作對象,再發命令,都能執行命令。如:Set--attributesattribute--values (設置屬性)Selectobject1 (把屬性值賦給物體1)Set--attributesattribute–values (設置屬性)Selectobject2 (把屬性值賦給物體2)Selectobject3 (選擇物體3)Set--attributesattribute–values (把屬性值賦給物體3)在上例混合語法中,命令模式和當前被選對象模式是交替的。不能全假設為當前被選對象模式,否則的話,第二次Set--attributes命令會對object1起作用。也不能全假設為命令模式,否則的話,在第三次Set--attributes命令之后,還要用戶選擇物體對其賦值,而不是把屬性值賦給object3了。在混合語法中,增加Do--it(執行)命令,會使命令模式和當前被選對象模式之間的切換顯得更加清楚。Select--objectobject (建立當前被選對象)Set--attributesattribute–values (建立命令模式)Do–it (執行設置屬性命令)Copy (建立命令模式)Select--objectobject (建立當前被選對象)Do–it (執行拷貝命令)Do–it (再次執行拷貝命令)能使語法隨模式的改變而改變是最理想的。例如,在沒有當前被選對象時發命令就是前綴語法,而在有當前被選對象時發命令就是后綴語法。如:Set--attributesattribute--values(在此之前沒有當前被選對象,則保留屬性,等待選擇對象)Select--objectobject(選擇對象后,設置屬性值)Select--objectobject(在此之前沒有命令,則建立當前被選對象,等待命令)Set--attributesattribute--values(發命令后設置屬性值)在這種隨模式改變而改變的語法分析中,必須向用戶反饋當前的模式,讓用戶清楚地了解執行命令后會產生什么結果。有些用戶可能會被這種交互方式搞糊涂,因為這畢竟是沒有遵守一致性的原則。

6.視覺效果設計用戶接口視覺效果設計得好與壞,直接影響用戶對這個接口的最初印象和使用時間的長短。視覺效果設計涉及用戶接口的各個圖形元素,如整個屏幕的布局、菜單和參數板的設計、顏色的使用、信息編碼和信息布置。好的視覺效果應具有簡單明快、一致、有吸引力等特點。設計時應注意以下三點:(1)簡單明快。達到簡單明快這一效果的最重要途徑,是對顯示信息在視覺方面進行組織和安排,以加強和強調它們的潛在邏輯關系,同時要減少用戶視線的改變,減少用戶手的運動。有以下一些視覺規則,可以用來組織和安排顯示信息:①相似性。具有相同屬性的兩個視覺刺激應歸屬于同一類。②相近性。距離相近的兩個視覺刺激應歸屬于同一類。③封閉性。對一組幾乎形成一個封閉域或可以看成是包圍了某個域的視覺刺激,看成是一個域。④連續性。觀察彼此相交的曲線或相互重疊的窗口,能看出每條曲線或每個窗口。(2)視覺編碼。在用戶接口設計中,編碼是指使不同顯示對象產生視覺差異。計算機圖形學中廣泛使用的編碼技術有:顏色、形狀、大小或長度、字樣、方向、亮度、紋理、線寬、線型等。對一個特定的編碼技術,確定其編碼等級是編碼技術的基本點。碼值越多,用戶越容易對相鄰的編碼產生混淆。據統計,最多用10種顏色、15種幾何形狀、6種區域大小、6種長度、24種角度的編碼值時,用戶識別顯示信息的出錯率會降低到5%。對每個編碼加注釋,說明其含義,可以降低出錯率。在特別重要的場合,往往采用多重編碼的方法,即用兩個或兩個以上的編碼方法表示同一個顯示對象。顏色編碼通常與其他編碼技術一同使用,這樣可以照顧有色盲的用戶。除了確定編碼等級,還要了解被編碼的顯示信息是有名信息,有序信息,還是可度量信息。有名信息是指那些可以用指名方式來區分的信息,它們之間沒有大小的概念;有序信息是指那些有一定順序、有大于或小于關系的信息,它們之間沒有距離的概念;可度量信息是指那些如溫度、高度、重量、數量等可以度量的信息。①有名信息的編碼。顏色、亮度、形狀、大小、線型、字樣、剖面圖案等編碼技術都適合于有名信息。對于數量一定的有名信息,如幾何造型系統中的基本體素——正方體、圓柱、圓錐、圓臺、環、正多面體,用顏色編碼是最易區別的。對于有名信息,編碼是無序的,用戶不能從中推斷出哪個重要,哪個不重要。用字樣編碼時,要注意在同一畫面上不能用太多的字樣,一般不多于兩種或三種。②有序信息的編碼。線型、密度可變的填充圖案、字體的大小等編碼技術適合于有序信息。這些編碼不必連續改變,但至少必須有一個顯而易見的順序。③可度量信息的編碼。可度量信息必須由一種可連續變化的編碼技術來顯示。刻度尺上的定位點、長短、兩線夾角或線的傾角、面積大小等編碼技術適合于可度量信息。與視覺編碼很接近的是如何把用戶的注意力吸引到某個特殊的顯示對象上。如吸引到出錯或警告信息上,吸引到當前被拾取的物體上,或吸引到當前選擇的命令上。吸引注意力的方法有:用特殊的顏色或形狀、閃爍、反轉顯示、光標轉動等。改變顏色比改變形狀、大小、灰度更能吸引用戶

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論