计算机程式课件_第1页
计算机程式课件_第2页
计算机程式课件_第3页
计算机程式课件_第4页
计算机程式课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

計算機程式DepartmentofComputerScienceandEngineeringDe-LinInstituteofTechnology第九章繪圖設定顏色所謂的繪圖,就是在背景色上以前景色畫點、畫線、或其他的幾何圖形在開始學繪圖之前,得先知到如何設定顏色QBColor函數範例(1)範例(EX9-1)這個範例最主要的目的是列出所有QBColor函數所提供的顏色,並觀察每一顏色相對應的RGB十六進位值說明程式開始執行,表單上會列出所有QBColor的顏色,以及其對應的RGB值QBColor函數範例(2)步驟這個程式不需要放置任何控制項依照下表修改表單的屬性欄在表單的Form_Activate事件程序中填入下列程式碼01.

PrivateSubForm_Activate()02.

Fori=0To1503.

PrintFormat(i,"00");04.

ForeColor=QBColor(i)05.

Print"█████████";06.

ForeColor=007.

PrintHex(QBColor(i))08.

Next09. EndSub

Form1NamefrmDigitalClockAutoRedrawTrueBorderStyle1CaptionQBColorForeColor0RGB函數可以產生任何色彩讓設計師可以更方便的利用紅、綠、藍三原色混和出顏色,不須熟悉位元運算RGB函數的格式 lVar=RGB(R,G,B)R、G、B分別代表R、G、B(紅、綠、藍)的數值範圍為0到255,0表示該顏色的成分最低,255表示成分最高例如產生純紅色RGB值

lVar=RGB(255,0,0)例如將表單被景色改呈藍色

BackColor=RGB(0,0,255)直接填入值(2)指定系統顏色用Long(長整數)設定顏色長整數型別資料佔用4個位元組(Byte)RGB三原色分別佔用一個位元組最高位元組的最高位元:

為1時,代表其後3個位元組是系統顏色編號

為0時,其後3個位元組是RGB值系統顏色:Windows環境中所提供的顏色透過”控制台/顯示器”中的”外觀”頁來設定這些顏色直接填入值(3)VisualBasic中預先定義的系統顏色常數常數值說明VbScrollBars&H80000000捲軸顏色VbDesktop&H80000001桌面顏色vbActiveTitleBar&H80000002使用中視窗標題列顏色vbInactiveTitleBar&H80000003非使用中視窗標題列顏色VbMenuBar&H80000004功能表背景顏色vbWindowBackground&H80000005視窗背景顏色vbWindowFrame&H80000006視窗框線顏色vbMenuText&H80000007功能表上文字的顏色vbWindowText&H80000008視窗內文字的顏色vbTitleBarText&H80000009標題、大小方塊和捲動箭號內文字的顏色vbActiveBorder&H8000000A使用中視窗框線的顏色vbInactiveBorder&H8000000B非使用中視窗框線的顏色vbApplicationWorkspace&H8000000C多文件介面(MDI)應用程式的背景顏色VbHighlight&H8000000D控制項內選項的背景顏色vbHighlightText&H8000000E控制項內選項的文字顏色vbButtonFace&H8000000F命令鈕正面的顏色vbButtonShadow&H80000010命令鈕邊緣的顏色vbGrayText&H80000011變灰的(失效的)文字vbButtonText&H80000012壓下的按鈕上面文字的顏色vbInactiveCaptionText&H80000013非使用中標題內文字的顏色vb3DHighlight&H80000014立體顯示元件的反白顏色vb3DDKShadow&H80000015立體顯示元件的陰影顏色vb3DLight&H80000016低於vb3Dhighlight的立體次亮顏色vb3DFace&H8000000F文字表面的顏色vb3DShadow&H80000010文字陰影的顏色vbInfoText&H80000017工具提示文字的顏色vbInfoBackground&H80000018工具提示背景的顏色通用對話方塊的種類Open(開啟舊檔)SaveAs(另存新檔)Color(色彩)Font(字型)Printer(列印)WinHelp(Windows線上說明)放置通用對話方塊控制項用Double-Click或拖放的方式通用對話方塊控制項執行時不會出現在表單上通用對話方塊控制項必須等待程式呼叫其方法,然後產生出所需的對話方塊產生各種對話方塊兩種方法用CommonDialog的方法(Method)來啟動對話方塊修改CommonDialog的Action屬性值對話方塊第一種:使用Method第二種:修改屬性不顯示任何對話方塊

Action=0Open(開啟舊檔)Object.ShowOpenAction=1SaveAs(另存新檔)Object.ShowSaveAction=2Color(色彩)Object.ShowColorAction=3Font(字型)Object.ShowFontAction=4Printer(列印)Object.ShowPrinterAction=5WinHelp(線上說明)Object.ShowHelpAction=6CommonDialog1.ShowOpenCommonDialog1.Action=1呼叫色彩對話方塊CommonDialog1.ShowColor用滑鼠按下[定義自訂色彩(D)>>]按鈕色彩通用對話方塊實作(1)範例(EX9-2)按下[選擇背景色(B)]按鈕之後,螢幕上會出現一個色彩通用對話方塊選定顏色後後,按下通用對話方塊上的[確定]鈕,表單的背景顏色會變更為所選定的顏色如果按下[取消]按鈕,則表單的背景色維持不變說明執行時,表單上只有一個命令鈕色彩通用對話方塊實作(2)按下[選擇背景色(B)]按鈕,螢幕上就會出現一個色彩通用對話方塊色彩通用對話方塊實作(3)選擇顏色後,按下[確定],表單的背景顏色就會變成剛剛所選擇的顏色步驟引用一個通用對話方塊控制項,然後在表單上放置一個通用對話方塊物件在表單上放置一個命令鈕畫點(1)將物件上一點設定為所指定的色彩常見的物件有Form、Printer、及PictureBoxPSet方法 物件.PSet[Step](x,y),[color]Step選擇性參數畫點的位置,是由目前CurrentX及CurrentY為原點,再加上後面(X,Y)參數的位移(x,y)必要參數要畫出點的水平(x軸)與垂直(y軸)座標Color選擇性參數畫出點的顏色;如果不指定這個值,則使用

ForeColor

的屬性值畫點(2)PSet方法所畫點的大小由DrawWidth屬性欄的值來決定DrawWidth為1時,使用PSet方法會畫出單點DrawWidth值越大,畫出來的點越粗每次以PSet(x,y)畫出一點後,CurrentX及CurrentY的值就會被重新設定為x及yPSet實作(1)範例(EX9-3)利用表單的MouseMove事件程序來製作一個繪圖程式說明程式開始執行時,螢幕上會出現一個完全空白的表單按住滑鼠左鍵不放、在空白的表單上移動時,滑鼠所經過的區域會畫上藍色的點;按住滑鼠右鍵則會畫上紅色的點;按住滑鼠中鍵,則會以背景色畫點,製造類似橡皮擦的效果PSet實作(3)步驟根據下表修改表單屬性在表單的MouseMove事件程序中填入下列程式碼

Form1NamefrmDrawAutoRedrawTrueBackColor&H00FFFFFF&Caption描點繪圖DrawWidth401.

PrivateSubForm_MouseMove(Button

AsInteger,ShiftAsInteger,_

XAsSingle,YAsSingle)02. SelectCaseButton03.

CaseIs=vbLeftButton04.

PSet(X,Y),vbBlue05.

CaseIs=vbRightButton06.

PSet(X,Y),vbRed07.

CaseIs=vbMiddleButton08.

PSet(X,Y),BackColor09.

EndSelect10. EndSubLine方法(畫線)(1) 物件.Line[Step](x1,y1)[Step]-(x2,y2),[color]Step:選擇性參數表示使用相對座標。畫線的起使位置(x1,y1),是由目前CurrentX及CurrentY為原點的相對座標(x1,y1):選擇性參數畫線的起始點的座標。預設為CurrentX及CurrentYStep:選擇性參數表示使用相對座標。畫線的終點位置(x2,y2),是相對於線的起始點的相對位移(x2,y2):必要參數標明所畫線段的終點座標Color:選擇性參數指定所畫線段顏色;如果不設定,則表示以物件的ForeColor(前景色)來畫線畫線實作(1)範例(EX9-4)範例EX9-3有個缺點,就是當我們移動滑鼠過快,那麼線條便會產生不連續的狀況我們可以利用Line方法來加以改良,讓點與點之間以線條來聯繫,如此即可形成不間斷的連續線畫線實作(2)說明用Line方法代替PSet方法,讓點與點之間以線條連接按下滑鼠按鈕表示開始畫圖,因此在MouseDown中將座標設定給CurrentX及CurrentY作為畫線的起點表單物件上已經有CurrentX、CurrentY兩個屬性欄紀錄Line方法的起點位置,因此在MouseMove中偵測按下的滑鼠按鈕,然後以Line方法加上(X2,Y2)座標即可畫出連續線畫線實作(3)步驟根據下表修改表單屬性在MouseDown及MouseMove事件程序中填入程式碼

Form1NamefrmDrawLineAutoRedrawTrueBackColor&H00FFFFFF&Caption描點繪圖DrawWidth401.

PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)02. CurrentX=X03.

CurrentY=Y04. EndSub

05. PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)06.

SelectCaseButton07.

CaseIs=vbLeftButton08.

Line-(X,Y),vbBlue09.

CaseIs=vbRightButton10.

Line-(X,Y),vbRed11.

CaseIs=vbMiddleButton12. Line-(X,Y),BackColor13.

EndSelect14. EndSubLine方法(畫矩形)物件.Line[Step](x1,y1)[Step]-(x2,y2),[color],B物件.Line[Step](x1,y1)[Step]-(x2,y2),[color],BFStep:選擇性參數採用相對座標,以CurrentX及CurrentY為原點座標(x1,y1):選擇性參數矩形的起始點。省略的話,由CurrentX及CurrentY來代替Step:選擇性參數(x2,y2)採用起始點(X1,Y1)為原點的相對座標(x2,y2):必要參數(x2,y2)相當於右下角座標Color:選擇性參數矩形外框的RGB色彩。如省略,則為物件的ForeColorB:繪製矩形的必要參數(B或BF任選其一)矩形內部受物件的FillColor及FillStyle兩個屬性影響。FillStyle的預設值1(透明),在不更動FillStyle預設值的情形下,只加B參數所繪製出來的矩形將只有外框BF:表示要以Color參數(外框顏色)來填充矩形內部畫矩形實作(1)範例(EX9-5)用”繪製矩形”方式來表現所有的QBColor顏色說明以For迴圈及Line方法來產生16個矩形;同時以For的計次變數做為QBColor()的參數,產生16種顏色的RGB值將繪製矩形的動作放在Form_Paint事件程序中,因此表單無論如何放大或縮小,都能維持填滿十六種顏色矩形的狀態畫矩形實作(2)步驟根據下表修改表單屬性在表單的Paint及Resize事件程序中填入下列程式碼

Form1NamefrmRectangleCaption繪製矩形01.

PrivateSubForm_Paint()02. DimiAsInteger,sWidthAsInteger03.

sWidth=ScaleWidth\1604.

Fori=0To1505.

Line(i*sWidth,0)-Step(sWidth,ScaleHeight),QBColor(i),BF06.

Next07. EndSub

08. PrivateSubForm_Resize()09.

Refresh10. EndSub畫圓(1) 物件.Circle(x,y),radius,color(x,y)

必要參數,代表圓心座標radius

必要參數,代表半徑color

選擇性參數,圓外框顏色。如果不加這個參 數,則以物件的ForeColor屬性欄中的設定值 為準預設的繪圖單位是以Twip為單位例如在空白的表單上畫一個圓心(1000,1000),半徑500的紅色圓:PrivateSubForm_Activate()

Circle(1000,1000),500,vbRedEndSub畫圓(2)用Circle方法畫出來的圖形,如果要填滿這個封閉區間,要靠物件上的FillStyle及FillColor的設定例如在紅色圓中填入黑色(預設的FillColor為黑色)交叉線常數設定值描述VbFSSolid0實心VbFSTransparent1(預設)透明VbHorizontalLine2水平線VbVerticalLine3垂直線VbUpwardDiagonal4左上到右下的斜線VbDownwardDiagonal5右下到右上的斜線VbCross6垂直交叉線VbDiagonalCross7對角交叉線PrivateSubForm_Activate()

FillStyle=vbCrossCircle(1000,1000),500,vbRedEndSub畫扇形(1) 物件.Circle(x,y),radius,color,begin,endbegin

選擇性參數代表扇形的啟始角度,以弳度量為其單位如果省略這個參數,則代表從0度的地方開始畫起end

選擇性參數代表扇形的終止角度,以弳度量為其單位如果省略這個參數,代表一直畫到360度(2π)的地方參數begin及end為正值時,所畫出來的會只是一段

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论