VB的绘图方法与常用函数_第1页
VB的绘图方法与常用函数_第2页
VB的绘图方法与常用函数_第3页
VB的绘图方法与常用函数_第4页
VB的绘图方法与常用函数_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

VB6的繪圖方法與常用函數常用繪圖方法(Method)指令ClsClearScreen,清除螢幕用點、線、圓….等繪圖方法所畫出的圖形或是用Print輸出的字串,都可以用Cls方法來加以清除。語法[Object].Cls物件.Cls常用繪圖方法、指令(續)Pset用來畫任意顏色的點語法[Object.]Pset[Step](X,Y)[,color]其中的X,Y是單精度變數,因此可以使用小數數值、變數。如果不指定color引數,就以ForeColor屬性的顏色為顏色。如果將color引數,設定為BackColor就會有「消除」的效果。常用繪圖方法、指令(續)Point可以讀取任意點的顏色值語法[Object.]Point(X,Y)Picture1AutoRedraw:TrueDrawWidth:5常用繪圖方法、指令(續)Line畫一條線語法B:畫框BF:畫框且填滿[Object.]Line[[Step](X1,Y1)]–[Step](X2,Y2),[Color][,B[F]]]Line(X1,Y1)-(X2,Y2)Line–(X1,Y1)常用繪圖方法、指令(續)Circle畫圓語法Radius:半徑Start:弧的起點End:弧的終點Aspec:長短軸比[Object.]CircleStep(X,Y),Radius,Color,Start,End,Aspec牛刀小試(1)試寫一程式,模擬小畫家的噴霧、畫筆與畫線的功能牛刀小試(1)---續Picture1Box*1Shape*16CommandButton*8牛刀小試(1)---續屬性設定PictureBox(Picture1)AutoRedraw:TrueAppearance:0–平面BorderStyle:1–單線固定ScaleMode:3–像素Shape(Shape1(0)~(15))CommandButton(Command1~5)Caption:如圖示Command4(0)~(3)表示線條寬度設定牛刀小試(1)---續全域變數宣告:mode1噴霧、2畫筆、3畫線ttt滑鼠左鍵點選的狀態0第一次點選、1第二次點選xx,yy記錄滑鼠第一次點選的座標selcolor從調色盤選取的顏色值ttt的起始值設為0Picture1的起始線條寬度為1填充Shape1,建立調色盤當滑鼠的左鍵點選調色盤後,將色碼值指派給selcolor變數牛刀小小試(1)---續續當按下下Command1設定定為「「噴霧霧」當按下下Command2設定定為「「畫筆筆」當按下下Command3設定定為「「畫筆筆」當按下下Command4(0)~(3)時時按所所對應應Index的Caption設定定Picture1的線條寬寬度當按下下Command5時,,清空空Picture1的內容牛刀小小試(1)---續續當mode=1時(噴霧霧),,以以滑鼠鼠所點點選的的位置置座標標為中心,,上下下左右右各延延伸十十個像像素,,以亂亂數取取20個座標點點,分分別畫畫上一一點當mode=2時(畫筆筆),,以以滑鼠鼠第一一次點點選的的位置置為基準繪繪上一一點,,並令令ttt變變數值值為1,倘倘若第第二次次點選滑鼠鼠,則則令ttt變數數值為為0當mode=3時(畫線線),,以以滑鼠鼠第一一次點點選的的位置置為基準繪繪上一一點,,並令令ttt變變數值值為1,以以xx及yy變變數記錄起起點,,倘若若第二二次點點選滑滑鼠,,則令令ttt變變數值值為0,且且於(xx,yy)到第第二次次的點點選點點繪製製一條條線當mode=2且ttt=1時,,移動動滑鼠鼠的同同時,,於Picture1上繪製製前一一個座座標到到目前前座標標間的的線條條常用的的字串串函數數Left()傳回字字串左左邊指指定數數量的的字元元語法Left_str=Left(Str,n)將Str字字串的的左邊邊n個個字元元放到到Left_str中n為小小數時時,則則系統統會自自動將將n以以四捨捨五入入轉成成整數數型態態如果n>Str的長長度時時,將將傳回回全部部字串串Str=““ABCDEFG””sss=Left(Str,3)sss=““ABC””常用的的字串串函數數(續續)Right()傳回字字串右右邊指指定數數量的的字元元語法Right_str=Right(Str,n)將Str字字串的的右邊邊n個個字元元放到到Right_str中中n為小小數時時,則則系統統會自自動將將n以以四捨捨五入入轉成成整數數型態態如果n>Str的長長度時時,將將傳回回全部部字串串Str=““ABCDEFG””sss=Right(Str,3)sss=““EFG””常用的字串函函數(續)Mid()傳回字串中間間指定數量的的字元語法Mid_str=Mid(Str,n)將Str字串串的第n個字字元起後的全全部字元放到到Mid_str中Mid_str=Mid(Str,n,m)將Str字串串的第n個字字元起後的m個字元放到到Mid_str中Str=“ABCDEFG”sss=Mid(Str,3)sss=“CDEFG”Str=“ABCDEFG”sss=Mid(Str,3,4)sss=“CDEF”常用的字串函函數(續)Len()傳回字串的長長度語法Len_str=Len(Str)將Str字串串長度的值放放到Len_str中Str=“ABCDEFG”sss=Len(Str)sss=7常用的字串函函數(續)LTrim()、Trim()、、RTrim()刪除字串中的的空白字元L_str=LTrim(Str)傳回Str字字串左邊不含含空白字元的的字串T_str=Trim(Str)傳回Str字字串左右兩邊邊不含空白字字元的字串R_str=RTrim(Str)傳回Str字字串右邊不含含空白字元的的字串Str=“ABCD”sss=LTrim(Str)sss=“ABCD”Str=“ABCD”sss=RTrim(Str)sss=“ABCD”Str=“ABCD”sss=Trim(Str)sss=“ABCD”常用的字串函函數(續)Space()重複空白字元元語法Space_str=Space(n)傳回n個空白白的字元Str1=““ABCD””Str2=““EFGH””sss=Str1+Space(3)+Str2sss=“ABCDEFGH”常用的字串函函數(續)String()重複特定字元元語法String_str=String(n,Str)傳回n個Str字串的第第一個字元Str=“ABCD”sss=String(4,Str)sss=“AAAA”常用的字串函函數(續)Asc()字元轉成Ascii碼語法Asc_str=Asc(Str)傳回Str字字串的第一個個字元轉成Ascii碼碼Chr()Ascii碼碼轉成字元語法Chr_str=Chr(Str)將數值資料轉轉成相對應的的Ascii字元Str=“ABCD”sss=Asc(Str)sss=65Str=65sss=Chr(Str)sss=“A”常用的字串函函數(續)Tab()定位函數語法Tab(n)目前游標所在在行的最前面面開始,向右右邊移動n個個位置與Print指令搭配使使用Spc()移位函數語法Spc(n)目前游標所在在位置開始,,向右邊插入入n個空白字字元與Print指令搭配使使用常用的轉換函函數Int_str=Val(Str)將字串轉為數數值型態Str_str=Str(Int)將數值轉為字字串型態CV=FormatCurrency(X,n,vbTrue或或vbFalse)將數值資料轉轉為貨幣值格格式FP=FormatPercent(X,n,vbTrue或或vbFalse)將數值資料格格式化為百分分比格式數值資料小數位數vbTrue:小數點前前要補0vbFalse:小小數點點前不不補0常用的的轉換換函數數(續續)FN=FormatNumber(X,n,vbTrue或或vbFalse)將數值值資料料格式式化DV=FormatDateTime(X,[顯示日日期時時間的的格式式])假令X=#5/5/200310:10:19PM#則顯示示日期期時間間的格格式為為0日日期與與時間間2003/5/5PM10:10:191完完整日日期2003年5月5日2簡簡短日日期2003/5/53完完整時時間PM10:10:19424小小時格格式22:10常用的的轉換換函數數(續續)Week_name=WeekdayName(Str)傳回星星期的的名稱稱給Week_nameMonth_name=MonthName(Str)傳回月月份的的名稱稱給Month_nameReverse_str=StrReverse(Str)將字串串Str反反轉後後回傳傳給Reverse_strJoin_str=Join(Str_Array,[d])將字串串陣列列組合合成一一個字字串,,d代代表分分隔字字元常用的的數學學函數數Abs(X)Sin(X)Cos(X)Tan(X)Atn(X)Exp(X)Log(X)Rnd(X)Sgn(X)CInt(X)Clog(X)Int(X)Fix(X)Sqr(X)Hex(X)Oct(X)Round(X,n)求整數數值三角函函數求絕對對值指數函函數自然對對數亂數函函數符號函函數轉為整整數函函數轉為長長整數數函數數求平方方根16進進位函函數8進進位函函數依指定定求出出小數數點位位數並四四捨五五入常用的的日期期時間間函數數Date目前的的系統統日期期Time目前的的系統統時間間Now目前的的系統統日期期與時時間常用的的日期期時間間函數數(續續)Timer傳回一一Single型態的的數值值,其其內容容為從從前一一個午午夜算算起到到現在在所經經過的的秒數數。Year(date)::傳傳回date變變數的的年份份Month(date)::傳回回date變數數的月月份Day(date)::傳回回date變數數的日日期Hour(time)::傳傳回time變變數的的小時時Minute(time)::傳傳回time變變數的的分鐘鐘Second(time)::傳傳回time變變數的的秒鐘鐘範例試設計計一萬萬年曆曆程式式陽曆為為何有有閏年年的安安排??有何何規律律性??陽曆訂訂地球球繞太太陽公公轉一一周為為一年年,全全年合合計365日,,稱為為平年年(平平均太太陽年年的簡簡稱)),但但實際際上地地球繞繞日公公轉一一周平平均為為365.2422日,,因此此每積積四年年就會會多出出約0.9688日日,為為了使使曆法法能配配合天天象,,規定定當西西元年年數是是四的的倍數數時,,二月月就增增加1天成成29天,,該年年稱為為閏年年,又又因此此法每每四年年又會會多加加0.03日左左右,,故再再規定定每四四百年年需減減3天天,當當西元元年數數逢百百年的的倍數數時,,必需需是400的倍倍數才才是閏閏年,,如1700、、1800、1900都都是平平年,,只有有2000年能能被400整除除才是是閏年年。閏年的的規則則西元年年數為為4的的倍數數者閏閏100的倍倍數者者不閏閏但400的的倍數數者閏閏所有的的年可被4整除除的年年可被100整除除的年年可被400整除除的年年閏年平年西元元元年一一月一一日是是星期期幾?星期一一因此……西元元元年一一月三三十一一日是是星期期?31mod7=3星期三三西元元元年二二月十十日是是星期期?(31+10)mod7=6星期六六西元二二年一一月十十三日日是星星期?(365+13)mod7=0星期日日版面配配置ComboBox[Combo1]ComboBox[Combo2]Label[Label1(0)]Label[Label3]Label[Label2]Label[Label1(1)]CommandButton[Command1(0)~Command1(36)]CommandButton[Command2]所使用用的變變數year(型型態為為long)欲查詢詢的西西元年年month(型態態為integer)欲查詢詢的月月份day(型態態為long)自西元元元年年一月月一日日至欲欲查詢詢的西西元年年月的的第一一天的的總天天數例如::欲查查詢2001年年12月,,則day為西西元元元年1月1日至至2001年12月月1日日的總總天數數month_day(型態態為variant)一個儲儲存平平年各各月份份天數數的一一維陣陣列(31,28,31,30,31,30,31,31,30,31,30,31)程式開開始執執行時時的初初值設設定在Combo1中加加入1999年年至2010年年的選選項在Combo2中加加入1月至至12月的的選項項按平年年各月月的天天數來來設定定month_day這這個陣陣列的的初始始值Month_day01234567891011相對月份123456789101112相對天數312831303130313130313031CommandButton2的的內容容PrivateSubCommand2_Click()IfMsgBox("是否否確定定離開開??",vbOKCancel+vbQuestion,"離離開")=vbOKThenEndEndIfEndSubCommandButton1要要做什什麼??用來顯顯示月月曆以複製製方式式建立立Command1(0)~Command1(36)程式核核心——ComboBox2希望當當選定定月份份後立立即顯顯示相相對於於所選選年月月的月月曆因此,,整個個動作作的重重心就就該放放在ComboBox2ComboBox2的內內容滑鼠左左鍵點點選Combo2兩次次出現現Combo2_Change()這這不是是所要要的Combo2_Click才才是所所要的的副程式式段ComboBox2的內內容(續)ComboBox2的內內容(續)year=Val(Combo1.Text)month=Val(Combo2.Text)Fori=0To36Command1(i).Caption=""Nexti令變變數數year等等於於Combo1所所點點選選的的年年份份,,並並透透過過Val函函數數將將其其轉轉換換為為數數值值令變變數數month等等於於Combo2所所點點選選的的月月份份,,並並透透過過Val函函數數將將其其轉轉換換為為數數值值將Command1(0)到到Command1(36)上上Caption所所顯顯示示的的值值清清空空ComboBox2的的內內容容(續續)day=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400計算算所所欲欲查查詢詢的的年年份份前前一一年年至至西西元元元元年年的的總總天天數數假設設欲欲查查詢詢的的是是2001年年12月月,,year=2001則從從西西元元1年年1月月1日日到到西西元元2000年年12月月31日日共計計有有2000*365+2000/4-2000/100+2000/400=730000+500––20+5=730485天先將將每每年年都都當當作作平平年年(365天天),,計計算算總總天天數數其中中共共計計有有幾幾個個閏閏年年ComboBox2的的內內容容(續續)If((yearMod4=0AndyearMod100<>0)Or(yearMod100=0AndyearMod400=0))Thenmonth_day(1)=29Elsemonth_day(1)=28EndIfFori=0Tomonth-2day=day+month_day(i)Nexti假如如所所欲欲查查詢詢的的年年份份(2001)為為閏閏年年的的話話則其其2月月有有29天天,,否否則則為為28天天累計計總總天天數數至至欲欲查查詢詢的的前前一一個個月月的的最最後後一一天天(11月月30日日)730485+31+28+31+30+31+30+31+31+30+31+30=730485+334=730819天天ComboBox

温馨提示

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

评论

0/150

提交评论