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