一個簡單的二維光柵圖形軟件包SRGP(SimpleRasterGraphicsPackage)_第1頁
一個簡單的二維光柵圖形軟件包SRGP(SimpleRasterGraphicsPackage)_第2頁
一個簡單的二維光柵圖形軟件包SRGP(SimpleRasterGraphicsPackage)_第3頁
一個簡單的二維光柵圖形軟件包SRGP(SimpleRasterGraphicsPackage)_第4頁
一個簡單的二維光柵圖形軟件包SRGP(SimpleRasterGraphicsPackage)_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、SRGP(Simple Raster Graphics Package) 應用應用 模型模型 應用應用 程序程序 SRGPSRGP 圖形圖形 硬件硬件 設備設備 輸出流輸出流 輸入流輸入流 u圖元的聲明圖元的聲明 u圖元的屬性圖元的屬性 u填充圖元及屬性填充圖元及屬性 u保存和恢復圖元的屬性保存和恢復圖元的屬性 u字符字符 掃描轉(zhuǎn)換掃描轉(zhuǎn)換 頂點(參數(shù))頂點(參數(shù)) 表示的圖形表示的圖形 用戶用戶 點陣表示點陣表示 的圖形的圖形 顯示系統(tǒng)顯示系統(tǒng) ),( 00 yx ),( 11 yx ),( 33 yx ),( 22 yx ),( 00 yx),( 11 yx ),( 22 yx),( 33

2、 yx ),( ii yx ,., 210 xxx 0 p 1 p 2 p 210 ,y,yy ),(yx ,* * 4. 圓弧和橢圓弧圓弧和橢圓弧 Void CircleArc (Point *center, int radius, int startAngle, int endAngle); /畫圓弧畫圓弧 Void EllipseArc(Rectangle *externRect, int startAngle,int endAngle); /畫橢圓畫橢圓 (x3,y3) (x4,y4) 作為對比,作為對比,vc提供了畫圖函數(shù)提供了畫圖函數(shù) 畫點畫點 畫線畫線 折線折線 圓弧圓弧 橢圓橢

3、圓 圓圓 填充等填充等 坐標坐標 顏色顏色 點點顏色顏色 X1,Y1 X2,Y2 坐標坐標 點點 Point1 Point2 例:例: x1,y1x1,y1 x2,y2x2,y2 x3,y3x3,y3 x4,y4x4,y4 x3,y3x3,y3和和x4,y4x4,y4為圓弧起點終點為圓弧起點終點 x1,y1x1,y1和和x2,y2x2,y2為圓弧的矩形框,可計算半徑為圓弧的矩形框,可計算半徑 逆時針方向逆時針方向 例:例: ps pe x1,y1 x2,y2 x1,y1x1,y1和和x2,y2x2,y2為圓弧的矩形框,可計算半為圓弧的矩形框,可計算半 徑徑 例:例: 重復畫基本線重復畫基本線:

4、 : 2 2倍、倍、4 4倍倍 逐段定義線色號逐段定義線色號 l填充方式設置(控制填充圖元的外觀)填充方式設置(控制填充圖元的外觀) Void SetFillStyle(enum FillStyle fillstyle)/設置填充設置填充 方式的函數(shù)方式的函數(shù) FillStyle定義如下:定義如下: enum FillStyle SOILD, /以當前前景色均勻填充圖元以當前前景色均勻填充圖元 BITMAP_PATTERN_OPAQUE, BITMAP_PATTERN_TRANSPARENT, / 以規(guī)以規(guī) 則排列的位圖填充;則排列的位圖填充; PIXMAP_ PATTERN /以規(guī)則排列的像

5、素圖填以規(guī)則排列的像素圖填 充;充; 位圖:二值圖像位圖:二值圖像 像素圖:多值圖像像素圖:多值圖像 SRGP提供位圖提供位圖/像素圖資源表像素圖資源表 以規(guī)則排列的位圖填充以規(guī)則排列的位圖填充 BITMAP_PATTERN_OPAQUE / /不透明方式,不透明方式, 對應位圖中對應位圖中“1 1”的像素用前景色(即當前設定的顏的像素用前景色(即當前設定的顏 色)顯示;對應位圖中色)顯示;對應位圖中“0 0”的像素用背景色顯示。的像素用背景色顯示。 背景色由函數(shù)背景色由函數(shù)void SetBackgroundColor(int colorIndex)設定。設定。 BITMAP_PATTERN

6、_TRANSPARENT /BITMAP_PATTERN_TRANSPARENT /透明方式,對應透明方式,對應 位圖中位圖中“1 1”的像素依然用前景色顯示;對應位圖的像素依然用前景色顯示;對應位圖 中中“0 0”的像素,顏色保持不變。的像素,顏色保持不變。 無論是以位圖還是像素圖填充圖元,圖元所呈現(xiàn)無論是以位圖還是像素圖填充圖元,圖元所呈現(xiàn) 的顏色總依賴于當前系統(tǒng)查色表的內(nèi)容,因為位圖的顏色總依賴于當前系統(tǒng)查色表的內(nèi)容,因為位圖/ /像像 素圖中保存的僅僅是顏色的索引值。素圖中保存的僅僅是顏色的索引值。 解決方法:菜單、按鈕、加亮、變灰、光標變化等等解決方法:菜單、按鈕、加亮、變灰、光標變

7、化等等 用于圖形的輸入點用于圖形的輸入點 滑塊滑塊 初值初值終值終值 對話框?qū)崿F(xiàn)對話框?qū)崿F(xiàn) 對話框?qū)崿F(xiàn) 應用程序應用程序 輸入操作輸入操作 等等 待待 用戶操作用戶操作 設置輸入設備的輸入方式:設置輸入設備的輸入方式: Void SetInputMode(enum Device inputDevice, Void SetInputMode(enum Device inputDevice, enum InputMode inputMode)enum InputMode inputMode) 枚舉變量枚舉變量DeviceDevice與與InputModeInputMode的定義為:的定義為: en

8、um Deviceenum Device LOCATOR, /LOCATOR, /定位設備定位設備 KEYBOARD, / KEYBOARD, / 鍵盤設備鍵盤設備 ; enum InputMode enum InputMode INACTIVE, /INACTIVE, /非激活狀態(tài)非激活狀態(tài) SAMPLE,SAMPLE,/取樣方式取樣方式 EVENT;EVENT;/事件驅(qū)動方式事件驅(qū)動方式 指定設備類型指定設備類型 指定設備方式指定設備方式 舉例:設定位設備為取樣方式舉例:設定位設備為取樣方式 SetInputMode(LOCATOR,SAMPLE);(LOCATOR,SAMPLE); 定位

9、設備:輸入的信息分為定位設備:輸入的信息分為3 3部分:部分: 光標當前的位置光標當前的位置 各個鍵的狀態(tài)(各個鍵的狀態(tài)(UPUP還是還是DOWNDOWN) 哪個鍵(左鍵還是右鍵)發(fā)生了狀態(tài)改變?哪個鍵(左鍵還是右鍵)發(fā)生了狀態(tài)改變? 信息獲取函數(shù)信息獲取函數(shù) Void SampleLocator(LocatorMeasure, *measure); 應用程序應用程序 輸入動作輸入動作 隊列隊列 輸入動作輸入動作 輸入動作輸入動作 用戶操作用戶操作 基于事件驅(qū)動方法的程序結構基于事件驅(qū)動方法的程序結構: 初始化輸入設備初始化輸入設備; ; dodo waitEvent(event);/wait

10、Event(event);/* *等待事件發(fā)生等待事件發(fā)生* */ / switch(event)/switch(event)/* *處理事件處理事件* */ / case EVENT1: case EVENT1: procedure1; procedure1; break;break; case EVENT2: case EVENT2: procedure2; procedure2; break;break; ; while (TRUE);while (TRUE); 設置輸入設備的輸入方式設置輸入設備的輸入方式 Void SetLocatorEchoType(enum EchoType ec

11、hoType);/定位設備反饋方式的設置定位設備反饋方式的設置 echoTypeechoType取值:取值: 1.NO_ECHO 1.NO_ECHO 無反饋無反饋 2.CURSOR 2.CURSOR 光標反饋光標反饋 /SRGP /SRGP將各種形狀的將各種形狀的 光標存儲在一張資源表中,通過調(diào)用光標存儲在一張資源表中,通過調(diào)用 Void SetCursor(int cursorIndex);來選擇所需光來選擇所需光 標標 3.RUBBER_LINE/RUBBER_RECT 橡皮筋線橡皮筋線/ / 橡皮筋矩形,由二點確定:錨點與當前光標點。橡皮筋矩形,由二點確定:錨點與當前光標點。 錨點是固定

12、的,錨點由函數(shù)錨點是固定的,錨點由函數(shù) void SetLocatorEchoRubberAnchor(Point *anchor) 設置。當前光標點的位置隨用戶的輸入而變化。設置。當前光標點的位置隨用戶的輸入而變化。 錨點錨點 當前點當前點 錨點錨點 當前點當前點 定位設備的各種反饋方式示例定位設備的各種反饋方式示例 p38 nmt p38 nmt 圖圖2.112.11 函數(shù)函數(shù) Void SetLocatorMeasure(Point *position); /設置光標位置設置光標位置 2.2.6 2.2.6 設置輸入設備的屬性設置輸入設備的屬性 鍵盤設備無反饋方式的屬性鍵盤設備無反饋方式

13、的屬性 Void SetKeyboardEchoOrigin(Point *origin) / / 用來設置初始化時屏幕上顯示輸入字符串的基點。用來設置初始化時屏幕上顯示輸入字符串的基點。 當鍵盤設備被激活時,缺省的狀態(tài)為空串。當鍵盤設備被激活時,缺省的狀態(tài)為空串。 下面鍵盤狀態(tài)設置函數(shù)可改變?nèi)笔顟B(tài):下面鍵盤狀態(tài)設置函數(shù)可改變?nèi)笔顟B(tài): Void SetKeyboardMeasure(char *keyMeasure) / keyMeasure代表一個字符串代表一個字符串 2.2.6 2.2.6 設置輸入設備的屬性設置輸入設備的屬性 2.3 2.3 光柵操作光柵操作 2.3.1 畫布畫布 2.3.2 裁剪窗口裁剪窗口 2.3.3 位塊拷貝位塊拷貝 2.3.4 顯示模式顯示模式 2.3.1 畫布畫布 例如點取菜單的過程:例如點取菜單的過程: 1.1.把菜單將要覆蓋的屏幕區(qū)域保存起來把菜單將要覆蓋的屏幕區(qū)域保存起來 2.2.把系統(tǒng)保存的菜單拷貝到屏幕上把系統(tǒng)保存的菜單拷貝到屏幕上 3.3.恢復屏幕區(qū)域,把保存的象素重新拷貝到屏幕上恢復屏幕區(qū)域,把保存的象素重新拷貝到屏幕上 可用于菜單或其他象素區(qū)域可用于菜單或其他象素區(qū)域 有變化時的處理有變化時的處理 2.3.1

溫馨提示

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

評論

0/150

提交評論