360 likes | 601 Views
Visual Basic 6.0 學習範本. 第九章 繪 圖. 屬性值. 說 明. 0. 使用者自訂。當改變 ScaleTop, ScaleLeft, ScaleHeight, ScaleWidth 值時,系統會自動設 ScaleMode = 0. 1. 以 Twip 為單位, 1 Twip = 1/1440 英吋 ( 預設值 ) 。. * 2. 以點 (Point) 為單位, 1 點 = 1/72 英吋。. 3. 以像素 (Pixel) 為單位,像素為螢幕上的基本單位。. 4.
E N D
Visual Basic 6.0 學習範本 第九章 繪 圖
屬性值 說 明 0 使用者自訂。當改變ScaleTop, ScaleLeft, ScaleHeight, ScaleWidth 值時,系統會自動設ScaleMode = 0 1 以Twip為單位,1 Twip = 1/1440英吋(預設值)。 *2 以點(Point)為單位,1點 = 1/72英吋。 3 以像素(Pixel)為單位,像素為螢幕上的基本單位。 4 以字元(Character)為單位,每個字元高1/6英吋,寬1/12英吋。 5 以英吋(inch)為單位。 6 以公厘(mm)為單位。 7 以公分(cm)為單位。 坐標單位 ScaleMode 屬性
屬 性 說 明 Left 表物件左界與母件左界的距離,其單位由母件而定。 Top 表物件上界與母件上界的距離,其單位由母件而定。 Width 表物件的寬度,其單位由母件而定。 Height 表物件的高度,其單位由母件而定。 *ScaleMode 在設定物件內部坐標系統的單位值。 Width=4000 Twips *ScaleLeft 在定義物件左上角坐標的X值,其值可以為負。 Left=1000 Twips Top=1000 Twips ScaleLeft=-100 ScaleTop= 100 *ScaleTop 在定義物件左上角坐標的Y值,其值可以為負。 左上角坐標 (-100, 100) Height=4000 Twips ScaleHeight=-200 *ScaleWidth 在定義物件X軸方向的長度。 (0,0) 右下角坐標 (100, -100) *ScaleHeight 在定義物件Y軸方向的長度。 ScaleWidth=200 ScaleLeft=-100
紅色小方塊ScaleMode=1(單位Twips) 藍色大方塊ScaleMode=6 (單位公厘) 比較使用ScaleMode=1與ScaleMode=6所繪圖形的差別。(程式碼請參照光碟)
Scale 方法 語法:[物件.] Scale [(x1 ,y1 )-(x2 ,y2 )] 功能:設定物件內部坐標 【說明】 1.物件 :可以為表單、圖片方塊或印表機,若省略此參數 則預設為表單。 2.X1:ScaleLeft的屬性值。 y1:ScaleTop的屬性值。 x2 - x1:ScaleWidth的屬性值。 y2 - y1:ScaleHeight的屬性值。 3.Scale後面不加任何參數,而執行[物件.] Scale敘述,則 物件的內部坐標會還原成預設值(以ScaleMode=1)。 [例如] Form1.Scale(ScaleMode = 1以Twip為單位)
CurrentX, CurrentY 屬性 語法:[物件.] CurrentX = X[物件.] CurrentY = Y 功能:設定欲顯示文字或圖形起始點之水平與垂直坐標 語法:X = [物件.] CurrentXY = [物件.] CurrentY 功能:取得目前坐標點所在的坐標值 【說明】 1. 物件:可為表單、圖片方塊或印表機,省略時代表表單。 2. CurrentX , CurrentY屬性只能在程式執行階段中設定,不 能在程式設計階段中設定。 3. 若在Line方法執行後,CurrentX,CurrentY是指直線終點 坐標。若在Circle方法後,是指圓心的坐標。
先設定直線的起點(200,600),再執行Line方法往右下方(500,2000) 位移的地方畫直線,然後將目前CurrentX , CurrentY的坐標值顯示出來。(程式碼請參照光碟)
顏色設定 利用QBColor函數,以條狀圖來顯示顏色代碼0-15所對應的顏色。(程式碼請參照光碟)
紅(R) 黃 紫 白 灰藍 綠(G) 藍(B) 使用 RGB 函數設定顏色 RGB (Red, Green, Blue) 函數共有三個引數,分別代表紅、綠、藍顏色光的強度,每個顏色值分別從0至255共分成256個階段,而每一個Byte可以表示數值0~255,紅、綠、藍三色各佔一個Byte,每一個Byte=8 Bits,因此每一個顏色可以用24 bits來表示,也就是「全彩」。 例如 RGB(255,0,0) 為紅色、RGB(0,255,0) 為綠色、RGB(0,0,255) 為藍色、RGB(255,0,255) 為紫色(紅+藍),其顏色合成原理如下圖所示:
物件 屬性 預設名稱 Name (物件名稱) Caption (標題) Max (最大值) Min (最小值) Form1 f9_2_2 f9_2_2RGB調色盤 - - Picture1 picRGB - - - HScroll1 hsbR - 255 0 HScroll2 hsbG - 255 0 HScroll3 hsbB - 255 0 Label1 lblR (預設值) - - lblR Label2 lblG (預設值) - - hsbR lblG Label3 lblB (預設值) - - hsbG picRGB lblB Command1 cmdEnd 結束 - - hsbB cmdEnd 利用三個水平捲軸,分別調整紅、綠、藍三原色的色階(0~255),並將調出的顏色及其RGB值分別顯示在表單上。(程式碼請參照光碟)
直接指定顏色值 Visual Basic是以十六進位(&H)的長整數來代表顏色,其格式為&HBBGGRR,其中BB、GG、RR分別表示藍,綠,紅的強度。RGB(255,0,0)為紅色,如改用十六進位表示則為&H0000FF。 【例】Picturel.BackColor = &H00FFFF(黃色)
PSet 方法 語法:[物件.] PSet (x, y) [,Color] 功能:繪製一個指定顏色的點在表單、圖片方塊或印表機物件上。 【說明】 1. 執行PSet方法後,CurrentX及CurrentY會被設定為目前的 坐標值。例如: 執行PSet(100,200)後,則CurrentX=100,CurrentY=200。 2. 配合表單中DrawWidth屬性,可以繪出不同大小的點。 3. PSet方法用來清除某個特定點時,只要將Color引數值設 為BackColor即可。
繪製一條拋物線,其方程式:Y=X2 (X為整數且0≦X≦10)(程式碼請參照光碟) (0,20) (-20,20) (-20,0) (20,0) (0,0) (20,-20) (0,-20) 110
Line 方法 語法:1.直線:[物件.] Line [(x1,y1)]-[Step](x2,y2) 2.方框:[物件.] Line [(x1,y1)]-[Step](x2,y2),[Color],B 3.方塊:[物件.] Line [(x1,y1)]-[Step](x2,y2),[Color],BF 功能:繪製直線,方框或方塊在表單、圖片方塊或印表機物件上。 1. x1,y1:線的起點;x2,y2: 線的終點;Color:使用RGB函數。 2. Line方法執行後,CurrentX, CurrentY是記錄直線的終點坐標。 [例如] Line (100,200)-(300,400) [說明] CurrentX變成300,CurrentY變成400。 3. Step的意義以直線的起點做相對位移。 [例如] Line (30,40)-Step(50,60) [說明] CurrentX = 30+50 = 80,CurrentY = 40+60 = 100。 4. 如果要畫頭尾相連的連續直線,便用Line-Step(x,y)是最佳 的方法。
屬性 說明 5. 加B表示畫方框:[例如] Line (50,50)-(150,150),RGB(255,0,0) , B[說明] 畫出以(50,50)、(150,150)為對角頂點的紅色方框。 6. 加BF表示畫方塊:[例如] Line (50,50) - (150,150) , RGB(255,0,0) , BF[說明] 畫出以(50,50)、(150,150)為對角頂 點的紅色實心方塊。 7.在表單或圖片方塊物件中,使用繪圖方法繪圖時常使用的屬 性如下: BackColor 物件的背景色。 ForeColor 物件的前景色。 DrawWidth 設定點或線條寬度。當DrawWidth>2時,DrawStyle的屬性0~4皆為實線效果。 DrawStyle 設定線條的樣式: =0實線(預設值) =1破折線 =2點線 =3破折線+點線 =4破折線+點線+點線 =5透明 =6內實線 設定線條顯示效果 FillColor 填充條紋顏色 FillStyle 填充條紋的樣式 DrawMode
DrawWidth=4DrawWidth=1 DrawWidth=1DrawStyle=3 DrawWidth=1DrawStyle=4 DrawWidth=1DrawStyle=0 DrawWidth=1DrawStyle=0 利用Line方法的引數變化,來繪製各種圖形(程式碼請參照光碟)
Circle 方法 語法: 1.圓形:[物件.]Circle(x,y),r[,C]2.圓弧:[物件.]Circle(x,y),r,[C],d1,d23.扇形:[物件.]Circle(x,y),r,[C],-d1,-d24.橢圓:[物件.]Circle(x,y),r,[C],,,a5.橢圓弧:[物件.]Circle(x,y),r,[C],d1,d2,a 功能:繪製正圓、橢圓、弧線或扇形在指定的表單、圖片方塊或 印表機等物件上。 1.(x,y)為圓心坐標。 2.r為半徑。 3.C為顏色值。 4.d1為圓弧起點角度,以弳為單位,省略時內定為0。 d2為終點角度,省略時內定2π(π ~3.14159)。
(900) 1/2π (1350) 3/4π 1/4π (450) 0π(00)或2π(3600) (1800) 1π (2250) 5/4π 7/4π (3150) 3/2π (2700) 5. 下圖為弳度與角度的對照圖: 6.如d1,d2前面加負號,則會由該角度的圓周上連一條線到 圓心,用此法可以繪製扇形。 7. a:軸向比,即垂直方向的半徑長除以水平方向半徑長值: j當a=1時畫出圓為正圓。 k當a>1時為瘦長的橢圓(垂直軸較長,r為垂直方向半徑長)。 l當a<1時則為扁平的橢圓(水平軸較長,r為水平半徑長)。
利用Circle方法中各項參數的設定來繪製圓的各類圖形。(程式碼請參照光碟)利用Circle方法中各項參數的設定來繪製圓的各類圖形。(程式碼請參照光碟)
Point 方法 語法:[物件.] Point (x,y) 功能:取得表單或圖片方塊物件中特定點的顏色值。 【說明】 1.Point方法所取得的顏色值為長整數。 2.在繪圖軟體中常有吸取顏色的功能,就可以用本方法設計。 利用滑鼠讀取表單內任意點顏色的RGB值。(程式碼請參照光碟)
LoadPicture函數 與SavePicture敘述 LoadPicture函數,將繪圖軟體所精心繪製的圖形檔或影像檔,直接載入表單或圖片方塊中;或是利用SavePicture敘述,可以將表單或圖片方塊內的圖形,以檔案方式存入磁碟機中,方便日後呼叫使用。 LoadPicture 函數 語法:[物件.] Picture = LoadPicture ([file_name]) 功能:將圖形檔載入表單、影像或圖片方塊中。 1.file_name是指要載入圖形的檔名,如果該檔不在目前的資料 夾下,必須加上路徑名稱,例如: Form1.Picture = LoadPicture ("A:\VB9\V9_7_1\ V9_7_1.bmp") 2.LoadPicture函數可載入.bmp、.ico或.wmf等格式的圖形檔。 如省略file_name,則會清除畫面。 下例是將物件名稱Image1的圖形清掉,例如:Image1.Picture = LoadPicture ( )
SavePicture 敘述 語法:SavePicture [物件.]Image(Picture),file_name 功能:將表單或圖片方塊內的圖形儲存為檔案 1. 若沒有指定物件時,SavePicture將目前表單內的圖形以指定的檔 名存入磁碟機中。 例:SavePicture Image, "A:\Pic2.bmp“ 2. 透過SavePicture敘述儲存圖形的控制項時,其AutoRedraw屬性為 True。 3. 語法中Image和Picture要擇一使用,如指定為Image,儲存時以 Bitmap(.bmp)格式存檔;如指定為Picture,會以該物件原載入格式 存檔。 例如:picA圖片方塊在Picture屬性值中載入一個向量檔(*.wmf), 若以SavePicture picA.Picture, “TEST1”儲存,則TEST1會是 一向量圖檔;若以SavePicture picA.Image, “TEST2”儲存, 則TEST2會是點陣圖檔。
App.Path 語法:App.Path 功能:取得目前程式所在的路徑 1. 程式所在的路徑為 D:\VB9\V9_2_2,則App.Path屬性值就”D:\ VB9\V9_2_2”,如果要使用LoadPicture來載入和程式同一個目 錄下的mouse.bmp圖形檔,可用下列方法: pic1 = LoadPicture(App.Path+”\mouse.bmp”) 2. 使用”/../”可得上一層的路徑,以下方法可以讀取程式所在目錄 的上一層目錄下的mouse.bmp圖檔: pic1 = LoadPicture(App.Path+”\..\mouse.bmp”) 假設程式在D:\VB9\V9_2_2目錄中,則上述指令會將D:\VB9\V9 _2_2\..\mouse.bmp載入pic1中,也就是載入D:\VB9\mouse.bmp。 3. 使用App.Path可以確保檔案存放在不同的磁碟機與目錄 時,依然可以讀取到正確目錄下的檔案。
物件 屬性 預設名稱 Name (物件名稱) Caption (標題) Font/大小 (字型大小) 先在左邊圖片方塊畫圖,如畫一個大嘴鳥,接著再按鈕將左圖存成圖形檔案,然後再按鈕將圖形載入所儲存的圖片,並放入右邊的圖片方塊中。 (程式碼請參照光碟) Form1 f9_7_1 f9_7_1存取圖形 12 Picture1 picLeft - 12 Picture2 picRight - 12 Command1 cmdCls 清圖 12 Command2 cmdSave 存圖 12 Command3 cmdLoad 讀圖 - Command4 cmdEnd 結束 - picLeft picRight cmdCls cmdEnd cmdSave cmdLoad
直線控制項 直線工具 直線 (Line) 「直線」控制項在設計階段可以直接用來產生不同樣式的線條,使得畫面顯得更加美觀,因為「直線」控制項只能繪圖,無法驅動任何事件,此特性和其它控制項極為不同。使用「直線」控制項可以在表單和圖片方塊中產生不同樣式的線條,移動表單或圖片方塊時線條亦會隨之移動。 直線控制項的建立
屬性 說明 BorderColor 設定線條的顏色。 BorderWidth 設定線條寬度。當BorderWidth大於1時,BorderStyle的屬性值只有0,1和6有效。 設定線條的樣式:=0透明=1實線(預設值)=2破折線=3點線=4破折線+點線=5破折線+點線+點線=6內實線 BorderStyle DrawMode 設定直線控制項顯示效果 X1 設定直線起點的X軸坐標。 Y1 設定直線起點的Y軸坐標。 X2 設定直線終點的X軸坐標。 Y2 設定直線終點的Y軸坐標。 設定直線控制項常用的屬性
直線控制項的應用 需要「直線控制項」的理由有下列幾點: 1.「直線控制項」是一個物件,設計階段便可看到結果。 2. 以Line方法所產生的直線,程式執行時才可看到結果。 以工具箱所產生的「直線控制項」,程式不必執行馬上 可以在表單上看到結果。 3. 執行Cls方法時,以Line方法所繪的線條都會被清除; 而「直線控制項」是不會清除仍然存在。 4.以「Line」方法繪完的線條若要修改必須由程式中去修 改,但是「直線控制項」在設計或執行階段均可隨時修 改其屬性值來改變線條的顏色、樣式、寬度等。
使用直線控制項,製作一個可以顯示實驗數據趨勢的程式。(程式碼請參照光碟)使用直線控制項,製作一個可以顯示實驗數據趨勢的程式。(程式碼請參照光碟) 1. 在表單上顯示一個坐標軸,上面有五個點代表實驗數 據在坐標 軸上的落點。 2.在表單另有一直線,移動滑鼠可以改變直線的位置。 3.拖曳滑鼠左鍵時,可以改變直線的長度和傾斜角度, 藉此可以估計第六組實驗數據的落點。
屬性 物件 預設名稱 Name (物件名稱) Caption (標題) BorderColor (邊界顏色) Form1 f9_8_1 f9_8_1 Line控制項 - linMove Line1 linMove - &H00FFFF00& Command1 cmdEnd 結束 - cmdEnd
形狀 (Shape) 「形狀」控制項可以不需利用Line,Circle等繪圖方法,便可以直接產生矩形、圓形、橢圓和圓角矩形等圖形,以美化畫面,「形狀」控制項和「直線」控制項一樣,無法驅動任何事件,僅供繪圖用,「形狀」控制項可以安置在表單或圖片方塊中,當移動表單或圖片方塊時,形狀所產生的控制項會隨之移動。
形狀控制項 形狀工具 形狀控制項的建立
屬性 說明 BackColor 設定形狀控制項的背景顏色 BackStyle 設定形狀控制項的背景形式 0-透明(預設值) 1-不透明 BorderColor 設定形狀控制項的輪廓顏色。 BorderStyle 設定形狀控制項的輪廓式樣,其值由0(預設值)~6。 BorderWidth 設定形狀控制項的輪廓寬度。 DrawMode 設定形狀控制項顯示的效果。 FillColor 設定形狀控制項內填充條紋的顏色。 FillStyle 設定形狀控制項內填充條紋的樣式。 Shape 設定形狀控制項的形狀樣式。 設定形狀控制項常用的屬性
Shape值 說 明 矩形(預設值) 正方形 橢圓形 0 圓形 1 圓角矩形 2 圓角正方形 3 4 5 形狀控制項的應用 Shape 屬性
FillStyle值 說 明 實心 1 透明(預設值) 0 2 水平線 3 垂直線 4 左上到右下的斜線 5 左下到右上的斜線 6 垂直交叉線 7 對角交叉線 FillStyle 屬性
DrawMode值 說 明 1 黑色 2 NOT(背景色OR前景色) 3 背景色AND (NOT前景色) *4 NOT (前景色) 5 (NOT前景色)AND前景色 6 NOT(背景色) *7 前景色 XOR 背景色 8 NOT (背景色 AND 前景色) *9 背景色 AND 前景色 10 NOT (背景色 XOR 前景色) *11 沒有動作 12 背景色 OR (NOT前景色) *13 前景色(預設值) 14 (NOT 背景色) OR 前景色 *15 背景色 OR 前景色 16 白色 DrawMode 屬性
DrawMode=9(And) DrawMode=4(反相) DrawMode=15(Or) DrawMode=11(透明) 觀察不同的DrawMode值,兩張圖形在畫面上重疊,呈現出不同的效果。 (程式碼請參照光碟)