李國懿
摘要 本文討論計算機圖形接口形式中交互命令的原理及相關(guān)操作。
【關(guān)鍵詞】計算機圖形接口 交互命令
在計算機圖形接口中,交互命令是不可缺少的部分,圖形概念在計算機圖形學(xué)中是一個廣義的概念,圖形數(shù)據(jù)通常是由幾何信息和非幾何信息組成,在漫長的歲月里,人們一直使用簡單的工具,用手工繪圖,計算機圖形技術(shù)的發(fā)展,有效的解決了這一效率低下的工作方式。在這一技術(shù)中,圖形接口技術(shù)是必不可少的,本文主要討論這接口形式中的交互命令。
交互概念主要是指用戶與計算機程序之間的信息交流,當(dāng)用戶把需求提出后,計算機根據(jù)程序的設(shè)置,實現(xiàn)用戶所需要的輸入、選擇、拾取、刪、增、改等操作。
1 用戶接口模型
建立一個基于交互要求的模型,有以下要求,從使用者角度,所建立模型要盡可能接近于實際使用情況。從程序設(shè)計方面考慮,則主要是對模型參數(shù)的化描述,以便用程序能夠?qū)崿F(xiàn)。目前,使用比較流行的模型是Seeheim模型。
其中的表示部分主要負(fù)責(zé)對用戶接口物理表示,即使用者接口的外部特性,包括了各種輸入輸出設(shè)備、屏幕的布局、交互技術(shù)和顯示技術(shù),主要完成的任務(wù)是:怎樣接收到用戶產(chǎn)生的數(shù)據(jù),以及數(shù)據(jù)如何反饋給用戶。這是三部分中唯一與設(shè)備有關(guān)的部分。其余兩部分都不直接與設(shè)備打交道。表示部分可看成是用戶接口管理系統(tǒng)的詞法級接口。對話控制模塊擔(dān)負(fù)處理使用者與計算機對話,包括使用的命令和對話結(jié)構(gòu),經(jīng)過檢查,確保合法性。這一部分可看作用戶管理系統(tǒng)中的語法級接口。其中的一個重要概念是狀態(tài),即能實現(xiàn)狀態(tài)處理和狀態(tài)轉(zhuǎn)換。應(yīng)用接口負(fù)責(zé)用戶接口與開發(fā)程序之間的連接,如函數(shù)的選擇和調(diào)用。
2 一條交互命令的執(zhí)行過程
用CADMIS中二、三維圖形交互處理系統(tǒng)實現(xiàn)增、刪、改操作的例子如下述,在此例中以矩形為操作對象。
增用鼠標(biāo)器或鍵盤設(shè)定屏幕上的一點作為矩形參考點,一般對應(yīng)矩形的左下角點,用鼠標(biāo)器或鍵盤設(shè)定矩形的邊長以及與水平軸的夾角,調(diào)用生成矩形的應(yīng)用程序,在屏幕指定位置、按指定屬性產(chǎn)生一個矩形,并存入相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。
刪用鼠標(biāo)器或鍵盤在屏靠上拾取要刪除的矩形,改變該矩形的屬性,如改變顏色或使之閃爍,待用戶確認(rèn)后,刪除屏幕上的矩形以及數(shù)據(jù)結(jié)構(gòu)中的相應(yīng)數(shù)據(jù)。
改用鼠標(biāo)器或鍵盤在屏幕上拾取到要修改的矩形,經(jīng)用戶確認(rèn)后輸入修改參數(shù),刪除原有的矩形,顯示按新參數(shù)生成的矩形并存入數(shù)據(jù)結(jié)構(gòu)中。
3 增、刑、改操作的實現(xiàn)
增、刪、改操作是與用戶接口的數(shù)據(jù)結(jié)構(gòu)緊密相關(guān)的。實現(xiàn)這類操作的數(shù)據(jù)結(jié)構(gòu)大致分為兩類。一類是三表結(jié)構(gòu),即要在用戶數(shù)據(jù)表、顯示數(shù)據(jù)表、用戶/顯示數(shù)據(jù)對照表中實現(xiàn)這類操作。另一類是單表結(jié)構(gòu),即僅在用戶數(shù)據(jù)表中實現(xiàn)這類操作。下面我們就這兩類數(shù)據(jù)結(jié)構(gòu)討論增、刪、改操作的具體實現(xiàn)
3.1 三表結(jié)構(gòu)
用戶數(shù)據(jù)表存放用戶坐標(biāo)系下的圖形數(shù)據(jù)(包括字符串說明)顯示數(shù)據(jù)表存放設(shè)備坐標(biāo)系下的圖形數(shù)據(jù),并且是對用戶定義圖形經(jīng)離散、幾何變形后的結(jié)果。因此,在這二張表之間不存在直接的一對一的映像關(guān)系,一般是間接的一對多的映像關(guān)系。從用戶坐標(biāo)系到設(shè)備坐標(biāo)系的刪、增、改只能通過名字(或標(biāo)識符)來進(jìn)行,且只能做整體操作,不易實現(xiàn)局部位置的修改。只有從屏幕上顯示的圖形出發(fā),即從設(shè)備坐標(biāo)系到用戶坐標(biāo)系才能實現(xiàn)局部位置上的刪、改,并可通過單個圖素的拾取、區(qū)域拾取、或有關(guān)指定屬性的拾取來實現(xiàn)刪、改。有了顯示數(shù)據(jù)表,就可以提高圖形撿取和輸出速度,但花費的存儲空間也是相當(dāng)大的。由于三表比單表多兩張表,故管理工作量也是不可忽視的。
在刪、增、改操作中,增最容易,所增加的內(nèi)容可接著表的尾指針往下存放。刪操作其次,若通過名字的刪、改,則可以從名字表出發(fā),通過鏈指針在用戶數(shù)據(jù)表中找到相應(yīng)的圖形,再在顯示數(shù)據(jù)表中找到已經(jīng)離散成線段的數(shù)據(jù)項,即可對屏幕上的圖形進(jìn)行刪、改,為了加快查找,可增加窗口、層次管理,即在用戶坐標(biāo)系與設(shè)備坐標(biāo)系之間建立窗口、層次對照表。
3.2 單袁結(jié)構(gòu)
針對用戶數(shù)據(jù)表來進(jìn)行刪、增、改操作,只設(shè)用戶數(shù)據(jù)表,不再設(shè)顯示數(shù)據(jù)表及其之間的對照表。采用這種數(shù)據(jù)結(jié)構(gòu)是基于顯示數(shù)據(jù),只是用戶數(shù)據(jù)作某種T變換的結(jié)果,且用戶數(shù)據(jù)亦是顯示數(shù)據(jù)經(jīng)T的逆變換的結(jié)果。對一般情況而言,T實現(xiàn)從用戶坐標(biāo)系到設(shè)備坐標(biāo)系的變換,而T的逆實現(xiàn)由設(shè)備坐標(biāo)系到用戶坐標(biāo)系的變換。
在單表結(jié)構(gòu)下實現(xiàn)對圖形的刪、增、改比在三表結(jié)構(gòu)下困難。這里簡單討論一下改操作。圖素的修改大致可分為三步:
(1)拾取要修改的圖素;
(2)輸入修改參數(shù);
(3)輸出修改后的圖素。
查找用戶所拾取的圖素是從當(dāng)前窗口開始的。窗口結(jié)構(gòu)表中存放了該窗口顯示的所有結(jié)構(gòu)。遍歷每一個結(jié)構(gòu),首先判拾取圖素的光標(biāo)是否落在該結(jié)構(gòu)的凸包長方體內(nèi);若在內(nèi),則遍歷該結(jié)構(gòu)的所有圖素;判光標(biāo)是否落在該圖素的凸包長方體內(nèi),如在內(nèi),則要精確判斷光標(biāo)是否落在該圖素上;如果在該圖素上,則可通過改變該圖素的顏色、或增亮,讓用戶確認(rèn)檢索結(jié)果。再檢索到該圖素在用戶數(shù)據(jù)表中的位置,取出所有參數(shù),并根據(jù)用戶輸人的修改參數(shù)來修改圖形。顯然,拾取的坐標(biāo)是設(shè)備坐標(biāo),必須變換成用戶坐標(biāo)才能到單表結(jié)構(gòu)中去比較。修改參數(shù)后的圖素還要經(jīng)過把用戶坐標(biāo)下的參數(shù)變換成設(shè)備坐標(biāo)下的數(shù)據(jù)才能在屏幕顯示輸出。
繪圖是人們表達(dá)觀點的一種主要方式,而計算機繪圖技術(shù)賦予了人們實現(xiàn)這一方式的重要手段,在實現(xiàn)這一方式的過程中,交互命令的功能不可缺少,該技術(shù)的出現(xiàn),使用得計算機在圖形方面的功能越來越豐富,隨著計算機應(yīng)用范圍的發(fā)展,這項技術(shù)會發(fā)展得更強大。
參考文獻(xiàn)
[1]郭開鶴,計算機圖形圖像設(shè)計[M].中國傳媒大學(xué)出版社,2006 (01).
[2]程輝,田少煦.計算機圖形圖像基礎(chǔ)[M],浙江大學(xué)出版社,2011(02).