




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第六章圖形設(shè)計
一、坐標(biāo)系統(tǒng)二、繪制線段三、繪制圓、橢圓和弧VB程序設(shè)計教程1陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)一、坐標(biāo)系統(tǒng)定義為了確定圖形在窗體中的具體位置,VisualBasic提供了窗口坐標(biāo),一個完整的直角坐標(biāo)系,用于確定一個控件或一個圖形在容器中的位置,所以,一個完整的直角坐標(biāo)系應(yīng)規(guī)定某坐標(biāo)原點,X軸和Y軸的方向及其刻度單位。在這樣一個具有完整坐標(biāo)系的容器中,一個控件的位置就可以用該控件左上角的坐標(biāo)(x,y)來表示,一段直線就可以用其起始點的坐標(biāo)(x1,y1)和終點(x2,y2)來表示,一個矩形就可用其左下角的坐標(biāo)(x1,y1)和右上角的坐標(biāo)(x2,y2)來表示了。1.系統(tǒng)默認(rèn)的坐標(biāo)系統(tǒng)在VisualBasic語言中的窗口坐標(biāo)系統(tǒng)與數(shù)學(xué)中的平面幾何坐標(biāo)系統(tǒng)不一樣,窗口坐標(biāo)系統(tǒng)以窗口的左上角為原點(0,0),X軸方向從左向右,而Y軸方向則從上至下,如下圖所示。
VB程序設(shè)計教程2陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)VB程序設(shè)計教程3陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)VisualBasic缺省的坐標(biāo)刻度單位為Twip(緹)。Twip是印刷單位,1個Twips為Point(點)的1/120,72Point為1英寸,這樣,1英寸就為1440twip。1厘米為567Twip。VisualBasic提供了8種坐標(biāo)系,如下表所示。
VB程序設(shè)計教程4陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)2.自定義坐標(biāo)系統(tǒng)在程序設(shè)計過程中,特別是在進(jìn)行圖形設(shè)計過程中,往往需要改變VisualBasic的默認(rèn)坐標(biāo)系統(tǒng),這時,可以通過設(shè)置窗體和圖片框等容器對象的ScaleMode、ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight等屬性來實現(xiàn)。(1)ScaleMode屬性,該屬性主要用來確定坐標(biāo)系統(tǒng)的刻度單位,其數(shù)據(jù)類型為整型,可以是以下值之一。
①0—User:該選項是用戶自定義刻度單位,具體由ScaleWidth和ScaleHeight算出。
②1—Twip:該選項是以“緹”為單位,系統(tǒng)的缺省值。
③2—Point該選項是以“磅”為單位,1英寸=72磅。
④3—Pixel該選項是以像素為單位,分辨率的最小單位。
⑤4—Character該選項是以字符為單位,水平1個字符=120緹,垂直1個字符=240緹。VB程序設(shè)計教程5陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)
⑥5—Inch該選項是以英寸為單位。
⑦6—Millimeter該選項是以毫米為單位。
⑧7—Centimeter該選項是以厘米為單位。(2)ScaleWidth屬性,該屬性主要來設(shè)置以下三個方面的值。其數(shù)據(jù)類型為數(shù)值型。
①可以用來表示容器的內(nèi)部寬度,如果設(shè)置ScaleWidth=5,即表示容器內(nèi)部寬度為5個單位。
②可以算出自定義坐標(biāo)系X軸的刻度單位,例如,當(dāng)容器實際內(nèi)部寬度為2000緹,而當(dāng)前ScaleWidth屬性值設(shè)置為5,則X軸的每一個刻度表示2000/5=400緹。
③
可以設(shè)置為負(fù)值,則表示反轉(zhuǎn)X軸的方向,即自定義坐標(biāo)系的X軸與系統(tǒng)默認(rèn)X軸的正向反向。VB程序設(shè)計教程6陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)(3)ScaleHeight屬性,該屬性主要用來設(shè)置以下三個方面的值,其數(shù)據(jù)類型為數(shù)值型。
①可以用來表示容器的內(nèi)部高度,如果設(shè)置ScaleHeight=5,即表示容器內(nèi)部高度為5個單位。
②可以算出自定義坐標(biāo)系Y軸的刻度單位,例如,當(dāng)容器實際內(nèi)部高度為1000緹,而當(dāng)前ScaleHeight屬性值設(shè)置為2,則Y軸的每一個刻度表示1000/2=500緹。
③可以設(shè)置為負(fù)值,則表示反轉(zhuǎn)y軸的方向,即自定義坐標(biāo)系的y軸與系統(tǒng)默認(rèn)y軸的正向反向。(4)ScaleLeft屬性,該屬性主要用來設(shè)置在自定義坐標(biāo)系統(tǒng)中,定義容器左上角向右為X坐標(biāo)。(5)ScaleTop屬性,該屬性主要用來設(shè)置在自定義坐標(biāo)系統(tǒng)中,定義容器左上角向下為Y坐標(biāo)。VB程序設(shè)計教程7陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)3.當(dāng)前坐標(biāo)系統(tǒng)當(dāng)在對象中繪制圖形或輸出結(jié)果時,常常需要將圖形或輸出結(jié)果定位在某一希望的位置處,為此,VisualBasic專門在其窗體和圖片框等對象中定義了兩個屬性,CurrentX和CurrentY,用來指示下一次輸出在哪里位置,這就是當(dāng)前坐標(biāo),其中CurrentX表示輸出位置的X軸坐標(biāo),CurrentY表示輸出位置的Y軸坐標(biāo)。CurrentX和CurrentY屬性:該屬性主要用來確定當(dāng)前繪圖點的X軸坐標(biāo)和Y軸坐標(biāo),其數(shù)據(jù)類型為數(shù)值型。
VB程序設(shè)計教程8陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)二、改變系統(tǒng)坐標(biāo)的方法1.改變系統(tǒng)坐標(biāo)屬性可以利用改變系統(tǒng)坐標(biāo)的屬性值來改變系統(tǒng)坐標(biāo),例如,通過下面的程序代碼可以改變系統(tǒng)的坐標(biāo)。【程序代碼】form1.scalemode=0form1.scalewidth=2form1.scaleheight=-2scaleleft=-1scaletop=-1執(zhí)行以上的程序代碼后,可以定義一個完整的坐標(biāo)系統(tǒng),即坐標(biāo)原點在窗體中心,X軸向右為正方向,Y軸向上為正方向。
VB程序設(shè)計教程9陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)2.利用Scale方法改變系統(tǒng)坐標(biāo)除了使用以上的屬性可以改變系統(tǒng)的坐標(biāo)外,還可以調(diào)用容器的Scale方法來自定義坐標(biāo)系統(tǒng)。Scale方法如下:[<對象名>.][(x1,y1)-(x2,y2)]該方法的功能是將容器的左上角坐標(biāo)定義為(x1,y1),將右下角坐標(biāo)定義為(x2,y2),如果省略<對象名>則默認(rèn)為是當(dāng)前窗體。如果省略“(x1,y1)-(x2,y2)”則將坐標(biāo)系統(tǒng)還原為系統(tǒng)默認(rèn)的坐標(biāo)系統(tǒng)。
VB程序設(shè)計教程10陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)三、圖像分辨率VisualBasic繪圖中的點是以顯示器像素為標(biāo)準(zhǔn)的,設(shè)置一個點的顏色是設(shè)置窗體對應(yīng)著的顯示器的一個像素的顏色。1.顯示器簡介顯示器是計算機最主要的外部設(shè)備之一。顯示系統(tǒng)由顯示器和適配卡(顯示卡)組成,兩者必須配對。2.顯示分辨率顯示分辨率是指屏幕上有多少個基本像素點。顯示系統(tǒng)的分辨率是指顯示卡和顯示器兩者的分辨率。不同分辨率的顯示器應(yīng)與相對應(yīng)分辨率的顯示卡配套使用,才能獲得所希望達(dá)到的顯示效果。VB程序設(shè)計教程11陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)3.顯示速度顯示速度是指顯示圖像或文字時的速度。由于顯示分辨率和顯示器的掃描頻率有關(guān),顯示分辨率高時,一個完整屏幕的像素點就增多了,所有像素都要顯示一遍,速度就要慢下來,這就需要提高掃描頻率。4.顏色和灰度顏色和灰度是衡量顯示系統(tǒng)性能的又一重要參數(shù)。早期的顯示卡MDA配單色的顯示器只能顯示字符,僅有一般亮度和高亮度兩種灰度,彩色顯示系統(tǒng)最多也只有16種顏色。而目前的顏色顯示系統(tǒng)VGA,可達(dá)256種顏色甚至更多。5.圖形顯示能力圖形顯示能力是指屏幕上的每一個像素點可以設(shè)置成不同值的能力。早期的單色顯示系統(tǒng)MDA是字符型的,不支持圖形顯示,它的控制比較簡單。而隨后出現(xiàn)的顯示系統(tǒng)均能支持圖形顯示。VB程序設(shè)計教程12陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)四、幾個數(shù)字圖像的重要概念1.色階(1evels)色階是指各種圖像色彩模式下圖形原色(如RGB模式下的原色為R,G,B和RGB四種)的明暗度,色階的調(diào)整也就是明暗度的調(diào)整。色階的范圍為0~255,也就是說,總共包含256種色階。2.色調(diào)(Hue)圖像通常被劃分為多個色調(diào)(如綠色、紅色),其中包含一個主色調(diào)。色調(diào)調(diào)整也就是旨將圖像顏色在各種顏色之間進(jìn)行調(diào)整,用戶可分別調(diào)整各色調(diào)。3.飽和度(Saturation)飽和度是指圖像顏色的彩度或鮮艷程度(如更紅或更綠),將一個圖像的飽和度降至-100時圖像即變?yōu)榛叶葓D。VB程序設(shè)計教程13陳孟建沈美莉編著第一節(jié)坐標(biāo)系統(tǒng)4.亮度(Brightness)亮度是指圖像中明暗程度的平衡,它決定了明暗色調(diào)的強度。5.對比度(Contrast)對比度是指不同顏色之間的差異。對比度越大,兩種顏色之間的差異就越大。例如,將一幅灰度圖像的對比度增加后,黑白顏色對比會更加鮮明。當(dāng)對比度增加到極限時,一幅灰度圖像將只剩下黑白兩色;而將對比度減小到極限時,一幅灰度圖像將只剩下灰色底圖。6.色域(Gamut)事實上,人眼所能看見的光、色范圍非常廣泛,而由計算機的彩色屏幕按RGB模式或由彩色印刷品按CYMK模式所表示出來的光與色,只不過是其中的一部分。
返回本章首頁VB程序設(shè)計教程14陳孟建沈美莉編著第二節(jié)繪制線段一、簡單畫點1.畫點方法在VisualBasic中提供了畫點的函數(shù),其格式如下:[<對象名>.]Pset(x,y)[,Color]功能:在該對象中的X軸和Y軸上畫一個點,若選擇了
[,Color]參數(shù),則畫出的點具有顏色。【例題6.3】使用畫點函數(shù)畫出99個點,顏色選擇為黑色,即RGB(10,10,10),畫點原點為系統(tǒng)默認(rèn)坐標(biāo)原點(0,0)。PrivateSubCommand1_Click()DimiAsIntegerFori=0To99PSet(i*50,i*50),RGB(10,10,10)NextEndSub
VB程序設(shè)計教程15陳孟建沈美莉編著第二節(jié)繪制線段2.清除點清除點的方法是采用把某一點的背景顏色設(shè)置為(BackColor),其格式如下:[<對象名>.]Pset(x,y)<,BackColor>功能:清除畫點。
【例題6.4】利用Pset函數(shù)在窗體上畫出由下列參數(shù)方程決定的曲線:在窗體下的Click過程下,繪制以上的曲線為星形線,其程序代碼如下:PrivateSubForm_Click()Form1.Scale(-1,1)-(1,-1)DrawWidth=2Fort=0To2*3.14259265Step0.001x=Sin(2*t)*Cos(t)y=Sin(2*t)*Sin(t)PSet(x,y),QBColor(2)NexttEndSub運行該程序后,顯示結(jié)果如下圖所示。
VB程序設(shè)計教程16陳孟建沈美莉編著第二節(jié)繪制線段VB程序設(shè)計教程17陳孟建沈美莉編著第二節(jié)繪制線段【例題6.5】使用畫點函數(shù)畫出99個點,顏色選擇為黑色,即RGB(10,10,10),畫點原點為系統(tǒng)默認(rèn)坐標(biāo)原點(0,0)。單擊“畫點”按鈕,即可99個點,單擊“清點”按鈕后,即可清除剛畫好的這99個點。以下程序是在例題6.3的基礎(chǔ)上再增加一段“清除點”的程序。【程序代碼】PrivateSubCommand2_Click()DimiAsIntegerFori=0To99PSet(i*50,i*50),BackColorNextEndSub運行該程序后,顯示結(jié)果如下圖所示。
VB程序設(shè)計教程18陳孟建沈美莉編著第二節(jié)繪制線段VB程序設(shè)計教程19陳孟建沈美莉編著第二節(jié)繪制線段二、繪制線段1.簡單畫線方法格式:[<對象名>.]Line[Step][(x1,y1)]-[step](x2,y2)[,[<Color>][,B[F]]功能:在<對象名>控件上,畫出一條從(x1,y1)到(x2,y2)的線段。其中[(x1,y1)]和[,<Color>]為可選項。參數(shù)x和y既可以是整數(shù),又可以是小數(shù)。說明:(1)<對象名>:表示要繪制線段的對象名稱,例如,窗體、圖片框等。省略時默認(rèn)為當(dāng)前窗體。(2)(x1,y1):表示要繪制線段的起始坐標(biāo)位置,是可選項。該參前面帶有[Step]選項,表示相對于(CurrentX,CurrentY)的坐標(biāo),否則為相對于當(dāng)前坐標(biāo)系的坐標(biāo)。VB程序設(shè)計教程20陳孟建沈美莉編著第二節(jié)繪制線段(3)(x2,y2):表示繪制線段的終點坐標(biāo),是必選項,如果(x2,y2)前面帶有[Step]選項,則表示相對于(CurrentX,CurrentY)的坐標(biāo),否則為相對于當(dāng)前坐標(biāo)系的坐標(biāo)。(4)
<Color>:表示繪制線段的顏色選擇,是可選項,若省略時,則使用對象當(dāng)前的前景色,也就是當(dāng)前的Forecolor屬性的值。(5)B:表示是否畫矩形,是可選項,當(dāng)選擇該參數(shù)時,矩形左上角的坐標(biāo)為(x1,y1),矩形右下角的坐標(biāo)為(x2,y2)。(6)F:是可選項,如果選擇了B后再選擇F參數(shù),則矩形的填充顏色取矩形的邊框顏色,如果只選擇B參數(shù),而不選擇F參數(shù),則矩形的填充取當(dāng)前對象的FillColor屬性和FillSytle屬性所指的顏色。
VB程序設(shè)計教程21陳孟建沈美莉編著第二節(jié)繪制線段【例題6.6】利用畫線函數(shù)在窗體上畫出兩條對角直線,當(dāng)改變窗體大小或雙擊鼠標(biāo)器時,可以刪除該對角線。(1)窗體單擊事件將畫出兩條對角線PrivateSubForm_Click()Line(0,0)-(ScaleWidth,ScaleHeight)Line(0,ScaleHeight)-(ScaleWidth,0)EndSub(2)雙擊窗體后將刪除對角線PrivateSubForm_DblClick()ClsEndSubVB程序設(shè)計教程22陳孟建沈美莉編著第二節(jié)繪制線段(3)改變窗體后將刪除對角線PrivateSubForm_Resize()ClsEndSub運行該程序后,顯示結(jié)果如下圖所示。
VB程序設(shè)計教程23陳孟建沈美莉編著第二節(jié)繪制線段【例題6.7】利用畫線函數(shù)在窗體上畫出矩形框。當(dāng)用鼠標(biāo)器雙擊該窗體時,畫出一個矩形框,如圖6-10(a)所示。當(dāng)用鼠標(biāo)器單擊該窗體時,畫出10個矩形框,如圖6-10(b)所示。(1)窗體雙擊事件將畫出1個矩形框PrivateSubForm_DblClick()Form1.ClsLine(600,600)-(600,2000)Line(600,2000)-(2000,2000)Line(2000,2000)-(2000,600)Line(2000,600)-(600,600)EndSubVB程序設(shè)計教程24陳孟建沈美莉編著第二節(jié)繪制線段(2)窗體單擊事件將畫出10個矩形框PrivateSubForm_Click()DimcountAsSingleDimend_tmpAsSingleDimstart_tmpAsSingleForcount=1To10end_tmp=count*200start_tmp=count*60Line(start_tmp,start_tmp)-(start_tmp,end_tmp)Line(start_tmp,end_tmp)-(end_tmp,end_tmp)Line(end_tmp,end_tmp)-(end_tmp,start_tmp)Line(end_tmp,start_tmp)-(start_tmp,start_tmp)NextcountEndSub運行該程序后,顯示結(jié)果如下圖所示。
VB程序設(shè)計教程25陳孟建沈美莉編著第二節(jié)繪制線段第二節(jié)繪制線段2.另一種畫線方法除了指定起點確定一條直線之外,還可以使用步長的方法來確定線段的長度和方向,其格式如下:格式:[<對象名>.]Line(x1,y1)-step(x2,y2)[,<Color>]功能:在<對象名>控件上,畫出一條從(x1,y1)到step(x2,y2)的線段。其中(x2,y2)的值是x1和y1的增值。例如:Line(200,250)-(500,1000)Line(200,250)-Step(300,750)以上兩個語句的功能是一樣的。使用第二個語句的step是一個步長,這個步長就是在原來的基礎(chǔ)上再增加一個值,也就是說,從原來的坐標(biāo)位置處,增加的值就是畫線的長度。
VB程序設(shè)計教程26陳孟建沈美莉編著第二節(jié)繪制線段三、改變線的寬度和虛實1.改變線寬在繪制線段時,如果不加以說明或設(shè)置其線寬,則按系統(tǒng)的默認(rèn)線寬進(jìn)行繪制線段。在實際情況下,需要改變線段的寬度,則可以對DrawWidth屬性的值進(jìn)行改變,達(dá)到線寬的目的。DrawWidth屬性:該屬性主要用來設(shè)置繪制線段的寬度,其數(shù)據(jù)類型為數(shù)值型。【例題6.8】改變線段寬度屬性值,畫出不同線寬的線段。PrivateSubCommand1_Click()DimlinewidthAsIntegerForlinewidth=1To10DrawWidth=linewidthPrint“第”;linewidth;“號”VB程序設(shè)計教程27陳孟建沈美莉編著第二節(jié)繪制線段Line(100,500*linewidth)-(3000,500*linewidth)PrintNextEndSub執(zhí)行以上運行該程序后,顯示結(jié)果如下圖所示。
VB程序設(shè)計教程28陳孟建沈美莉編著第二節(jié)繪制線段2.實線和虛線設(shè)置線段的虛線和實線可以對DrawStyle屬性的值進(jìn)行改變即可達(dá)到目的。DrawStyle屬性:該屬性主要用來設(shè)置繪制線段的類型,是虛線還是實線,其數(shù)據(jù)類型為數(shù)值型。該屬性共有以下7種線條效果,它們是:
①0—Solid:表示該屬性的值可以繪制的線段為實線;
②1—Dash:表示該屬性的值可以繪制的線段為長虛線;
③2—Dot:表示該屬性的值可以繪制斷虛線;
④3—Dash-Dot:表示該屬性的值可以繪制點劃線;
⑤4—Dash-Dot-Dot:表示該屬性的值可以繪制點點劃線;
⑥5—Transparent:表示該屬性的值可以繪制空線即不可見的線,或者可以用來刪除線段。
⑦6—InsideSolid:表示該屬性的值可以繪制實線。
VB程序設(shè)計教程29陳孟建沈美莉編著第二節(jié)繪制線段【例題6.10】利用畫線函數(shù)在窗體上畫出若干條隨機的直線,并以窗體中心為起點,每0.1秒畫出一條直線,線寬設(shè)計為2,線的顏色使用RGB函數(shù)隨機產(chǎn)生,單擊停止按鈕后則停止畫線。【程序代碼】(1)命令按鈕1單擊事件段PrivateSubCommand1_Click()Form1.ClsTimer1.Enabled=TrueEndSub(2)命令按鈕2單擊事件段PrivateSubCommand2_Click()Timer1.Enabled=FalseEndSubVB程序設(shè)計教程30陳孟建沈美莉編著第二節(jié)繪制線段(3)窗體裝運事件段PrivateSubForm_Load()Timer1.Enabled=FalseTimer1.Interval=100RandomizeForm1.Scale(-1,1)-(1,-1)DrawWidth=2EndSub(4)時鐘段PrivateSubTimer1_Timer()randx=Rndrandy=RndVB程序設(shè)計教程31陳孟建沈美莉編著第二節(jié)繪制線段IfRnd>0.5Thenrandx=-randxIfRnd>0.5Thenrandy=-randyForm1.Line(0,0)-(randx,randy),RGB(Rnd*255,Rnd*255,Rnd*255)EndSub運行該程序后,顯示結(jié)果如下圖所示。VB程序設(shè)計教程32陳孟建沈美莉編著第二節(jié)繪制線段四、畫線綜合應(yīng)用舉例【例題6.11】利用畫點和畫線函數(shù)在窗體上畫出任意形狀的幾何圖形。當(dāng)在窗體上用鼠標(biāo)器單擊時,便在該坐標(biāo)點上畫一個黑色的小點,當(dāng)在窗體上用鼠標(biāo)器雙擊時,便可將在該窗體上的所有黑色小點用直線連接起來,當(dāng)按下鍵盤上的任何一個鍵時,將刪除所有的圖形,即清除屏幕。
(1)通用聲明段Dimxpt(100)AsIntegerDimypt(100)AsIntegerDimnumAsInteger(2)按任意鍵后將清屏PrivateSubForm_KeyPress(KeyAsciiAsInteger)Clsnum=0EndSubVB程序設(shè)計教程33陳孟建沈美莉編著第二節(jié)繪制線段(3)單擊鼠標(biāo)器左鍵畫點,單擊鼠標(biāo)器右鍵則畫一條連線PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)If(Button=1)Then‘單擊鼠標(biāo)器左鍵
xpt(num)=X‘記住鼠標(biāo)器位置
ypt(num)=Y
PSet(X,Y)‘在鼠標(biāo)器位置繪點
num=num+1EndIfIf(Button=2)Then‘單擊鼠標(biāo)器右鍵
Fori=0Tonum-2‘將各點連線
Forj=i+1Tonum-1Line(xpt(i),ypt(i))-(xpt(j),ypt(j))NextjNextiEndIfEndSub運行該程序后,顯示結(jié)果如下圖所示。
VB程序設(shè)計教程34陳孟建沈美莉編著第二節(jié)繪制線段VB程序設(shè)計教程35陳孟建沈美莉編著第二節(jié)繪制線段【例題6.13】試編寫一程序,要求使用鼠標(biāo)器的拖拽方法來繪線,也就是,當(dāng)按下鼠標(biāo)器的左按鍵后,不放手,移動鼠標(biāo)器后,在窗體下就會繪制出鼠標(biāo)器移動的軌跡。當(dāng)按下鍵盤中的任何按鍵后,將刪除剛繪制的一段,即清屏。(1)通用聲明段DimcolorvalAsLong(2)窗體按鍵段PrivateSubForm_KeyPress(KeyAsciiAsInteger)ClsEndSub(3)窗體裝運事件段PrivateSubForm_Load()colorval=RGB(0,0,255)‘設(shè)置線段為藍(lán)色EndSubVB程序設(shè)計教程36陳孟建沈美莉編著第二節(jié)繪制線段(4)窗體鼠標(biāo)器按下事件段PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)If(Button=1)Then‘按鼠標(biāo)器的左邊鍵
PSet(X,Y),colorval‘在鼠標(biāo)器位置處繪點EndIfEndSub(5)窗體鼠標(biāo)器拖拽事件段PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenLine-(X,Y),colorval‘按鼠標(biāo)器左邊鍵EndIfEndSub運行該程序后,顯示結(jié)果如下圖所示。
VB程序設(shè)計教程37陳孟建沈美莉編著第二節(jié)繪制線段VB程序設(shè)計教程38陳孟建沈美莉編著第二節(jié)繪制線段【例題6.14】對例題6.13增加一個改變線寬的功能,增加一個實線和虛線功能,增加一個菜單功能,如下圖所示。VB程序設(shè)計教程39陳孟建沈美莉編著第二節(jié)繪制線段(1)按下鼠標(biāo)器左鍵繪點PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)If(Button=1)Then‘按下鼠標(biāo)器左邊鍵
PSet(X,Y)‘在鼠標(biāo)器位置處繪點
menCls.Enabled=-1‘令清除指令可操作EndIfEndSub(2)鼠標(biāo)器拖拽后產(chǎn)生的繪圖效果PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenLine-(X,Y)‘按鼠標(biāo)器左邊鍵EndIfEndSubVB程序設(shè)計教程40陳孟建沈美莉編著第二節(jié)繪制線段(3)執(zhí)行版本說明程式指令PrivateSubmenAbout_Click()msg="作者:高級程序員"msg=msg+Chr(10)‘用于換行msg=msg+"時間:2003年11月28日"MsgBox
msgEndSub(4)清屏處理PrivateSubmenCls_Click()ClsmenCls.Enabled=0‘令清除指令無法運作EndSub
VB程序設(shè)計教程41陳孟建沈美莉編著第二節(jié)繪制線段(5)執(zhí)行退出程式指令PrivateSubmenuquit_Click()EndEndSub(6)執(zhí)行改變線寬程式指令PrivateSubmenWidth_Click(IndexAsInteger)menWidth(DrawWidth-1).Checked=0‘取消原先設(shè)定DrawWidth=Index+1‘設(shè)定線寬menWidth(Index).Checked=-1‘設(shè)定此指令EndSubVB程序設(shè)計教程42陳孟建沈美莉編著第二節(jié)繪制線段(7)執(zhí)行改變線條效果PrivateSubmenstyle_Click(IndexAsInteger)DrawStyle=Index+1‘設(shè)定線條效果menstyle(DrawStyle-1).Checked=0‘取消原先設(shè)定menstyle(Index).Checked=-1‘設(shè)定此指令EndSub運行該程序后,顯示結(jié)果如下圖所示。
返回本章首頁VB程序設(shè)計教程43陳孟建沈美莉編著第三節(jié)繪制圓、橢圓和弧一、Circle方法在VisualBasic中提供了Circle方法,可以用來畫圓、橢圓、圓弧、扇形等圖形,其格式為:[<對象名>.]Circle[step](x,y),<半徑>[,[<Color>][,[<起始角>][,[<終止角>],[,[<縱橫比>]]]]]功能:在指定的對象位置處畫圓形。說明:(1)<對象名>:表示要繪制的圓形、橢圓、圓弧、扇形等的對象名稱,例如窗體、圖片框等,若省略該選項,則默認(rèn)為當(dāng)前的窗體。(2)(x,y):表示要繪制圖形的圓心起始坐標(biāo)位置,是可選項。該參前面帶有[Step]選項,表示相對于(CurrentX,CurrentY)的坐標(biāo),否則為相對于當(dāng)前坐標(biāo)系的坐標(biāo)。(3)<半徑>:表示繪制圓圖形的半徑,若要繪制橢圓形,則指橢圓形長半軸的長度。VB程序設(shè)計教程44陳孟建沈美莉編著第三節(jié)繪制圓、橢圓和弧(4)<Color>:表示繪制圖形的邊框顏色值,是可選項,若省略時,則使用當(dāng)前對象的前景顏色,即使用當(dāng)前對象的ForeColor屬性值。(5)<起始角>:表示要繪制圖形的起始角度,以弧度為單位,該項為可選項。(6)<終止角>:表示要繪制圖形的終止角度,以弧度為單位,該項為可選項。(7)<縱橫比>:表示要繪制的橢圓形圖形的長半軸與短半軸的比值,若<縱橫比>大于1,則為縱向橢圓形,若<縱橫比>小于1時,則為橫向橢圓形,若<縱橫比>等于1時,為圓。
VB程序設(shè)計教程45陳孟建沈美莉編著第三節(jié)繪制圓、橢圓和弧【例題6.15】試編寫程序,畫出一些簡單的圓形圖。PrivateSubCommand1_Click()DimradiusAsSingleradius=(Width-1000)/2DimangleAsDoubleangle=5DimcolorAsLongcolor=255DoWhileradius>=300Circle(Width/2,Height/2-200),radius,255radius=radius*10/11color=color+10LoopEndSub運行該程序后,顯示結(jié)果如下圖所示。
VB程序設(shè)計教程46陳孟建沈美莉編著第三節(jié)繪制圓、橢圓和弧VB程序設(shè)計教程47陳孟建沈美莉編著第三節(jié)繪制圓、橢圓和弧【例題6.16】試編寫程序,在窗體上畫出一個地球儀圖形。【程序代碼】PrivateSubCommand1_Click()Form1.Scale(-1,1)-(1,-1)Form1.ClsForm1.DrawWidth=2Form1.Circle(0,0),0.8,,,,1Form1.Circle(0,0),0.8,,,,0.2Form1.Circle(0,0),0.8,,,,2EndSub運行修改的程序后,顯示結(jié)果如下圖所示。
VB程序設(shè)計教程48陳孟建沈美莉編著第三節(jié)繪制圓、橢圓和弧VB程序設(shè)計教程49陳孟建沈美莉編著第三節(jié)繪制圓、橢圓和弧二、改變繪圖參數(shù)1.RGB顏色系統(tǒng)我們已經(jīng)知道計算機可以使用三原色RGB即Red(紅色)、Green(綠色)、Blue(藍(lán)色)來表示顏色的。RGB函數(shù)的格式為:RGB(數(shù)值,數(shù)值,數(shù)值)RGB各項的數(shù)值都是0~255,用16進(jìn)制表示就是00~FF。幾種常用顏色的RGB值如下:(1)白色:RGB(255,255,255)(2)黑色:RGB(0,0,0)(3)紅色:RGB(255,0,0)(4)藍(lán)色:RGB(0,0,255)(5)綠色:RGB(0,255,0)(6)紫色:RGB(255,0,255)(7)黃色:RGB(255,255,0)(8)藍(lán)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)英語四級考試題及答案
- 一個保安個人的年終總結(jié)范文
- 2024年度浙江省二級造價工程師之建設(shè)工程造價管理基礎(chǔ)知識題庫附答案(典型題)
- 2024年度浙江省二級造價工程師之土建建設(shè)工程計量與計價實務(wù)題庫綜合試卷A卷附答案
- 2024年度浙江省二級造價工程師之土建建設(shè)工程計量與計價實務(wù)練習(xí)題及答案
- 演講技巧課件培訓(xùn)
- 中班健康早餐吃的好
- 宇宙科普教育
- DB43-T 2874-2023 小餐飲和食品攤販經(jīng)營規(guī)范
- 認(rèn)知覺醒培訓(xùn)
- 2023年甘肅蘭州大學(xué)網(wǎng)絡(luò)與繼續(xù)教育學(xué)院人員招聘2人高頻考點題庫(共500題含答案解析)模擬練習(xí)試卷
- 肝內(nèi)膽管結(jié)石詳解
- 發(fā)電機勵磁系統(tǒng)檢修與維護(hù)
- 2023-2024學(xué)年福建省泉州市小學(xué)語文六年級期末自測模擬試卷
- GB 29541-2013熱泵熱水機(器)能效限定值及能效等級
- 控規(guī)用地代碼
- 2023年上杭縣社區(qū)工作者招聘考試筆試題庫及答案解析
- 2021年曹楊二中自招數(shù)學(xué)試卷
- 新能源汽車底盤檢修全套課件
- 幼兒園大班數(shù)學(xué)口算練習(xí)題可打印
- 江蘇特種作業(yè)人員體檢表
評論
0/150
提交評論