這問(wèn)題有點(diǎn)籠統(tǒng),軟糖來(lái)說(shuō)說(shuō)把:
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括雁塔網(wǎng)站建設(shè)、雁塔網(wǎng)站制作、雁塔網(wǎng)頁(yè)制作以及雁塔網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,雁塔網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到雁塔省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
圖像處理由System.Drawing命名空間負(fù)責(zé)。
主要是Bitmap類和Graphics類。
Bitmap表示一個(gè)位圖,可以是BMP,JPG,PNG等文件。
裝載位圖
Dim?位圖?As?Bitmap?=?Bitmap.FromFile("C:\Image1.PNG")
Graphics表示一張畫紙,能夠進(jìn)行繪制操作。
它可以被窗體、控件、位圖調(diào)用CreateGraphics()方法來(lái)創(chuàng)建。
然后調(diào)用Graphics.Draw開頭的一系列函數(shù)來(lái)繪制圖像和圖形,F(xiàn)ill開頭的填充圖形。
創(chuàng)建畫紙并繪制位圖
Dim?畫紙?As?Graphics?=?Me.CreateGraphics()
畫紙.DrawImage(位圖,?100,?100,?256,?256)
可以將上面三行放到Form1_Load中測(cè)試,把路徑改一下,
還可以把Me改為能在上面繪圖的控件的名稱。
更多內(nèi)容請(qǐng)看MSDN的System.Drawing命名空間。
如滿意,請(qǐng)采納,謝謝。
一、分析:
1,這一類隨時(shí)間而變化的曲線圖,通常把橫軸作為時(shí)間,把縱軸作為相應(yīng)的值,在這里就是密度值。
2,點(diǎn)的集合就是線;一組時(shí)間、密度值,對(duì)應(yīng)一個(gè)點(diǎn),把點(diǎn)連接起來(lái)就構(gòu)成了線。
二、在VB.NET中作圖,需要知道并解決幾個(gè)問(wèn)題:
1,與VB6一樣,VB.NET中默認(rèn)的坐標(biāo)系統(tǒng),左上角為坐標(biāo)原點(diǎn),X軸的正向?yàn)閺淖笙蛴?,Y軸的正向是從上向下。
為了使得它與數(shù)學(xué)中的坐標(biāo)系統(tǒng)相一致,可以使用VB.NET中Graphics類的兩個(gè)方法;
1、TranslateTransform----平移變換
格式:Graphics.TranslateTransform(dx,dy)
其中:dx 和 dy分別是Single數(shù)據(jù)類型
2、ScaleTransform----縮放變換
格式:Graphics.ScaleTransform(sx,sy)
其中:sx 和 sy分別是Single數(shù)據(jù)類型;
例如:為了符合數(shù)學(xué)中的一般格式,可以使用下述代碼:
Graphics.ScaleTransform(1, -1)
這樣就把Y軸的正方向給翻過(guò)來(lái)了。
三、VB.NET中繪制圖形
1,繪制圓或橢圓
'繪制圖形的三步曲
'1,獲得一個(gè)Graphics對(duì)象
Dim MyGraphics As Graphics
MyGraphics = Me.CreateGraphics
'2,定義一個(gè)Pen對(duì)象,用于繪制圖形(輪廓線)
Dim MyPen As New Pen(Color.Black)
'3,定義一個(gè)Brush對(duì)象,用于填充圖形(如果需要填充的話)
Dim MyBrush As New SolidBrush(Color.Orange)
'繪制一個(gè)實(shí)心圓,該圓在:直線x=200,y=200,x=200+100,y=200+100所劃的矩形區(qū)域內(nèi)
MyGraphics.FillEllipse(Brush, 200, 200, 100, 100)
'繪制一個(gè)空心圓,該圓在:直線x=200,y=200,x=200+100,y=200+100所劃的矩形區(qū)域內(nèi)
MyGraphics.DrawEllipse(Pen, 200, 200, 100, 100)
注意:最后兩個(gè)數(shù)值如果不等,就是繪制橢圓
當(dāng)圓足夠小,就是點(diǎn)了。
2,繪制直線
'1,獲得一個(gè)Graphics對(duì)象
Dim MyGraphics As Graphics
MyGraphics = Me.CreateGraphics
'2,定義一個(gè)Pen對(duì)象,用于繪制圖形(輪廓線)
Dim MyPen As New Pen(Color.Black)
MyGraphics.DrawLine(MyPen, 200, 200, 100, 100)
'或者直接用
Me.CreateGraphics.DrawLine(New Pen(Color.Black), 50, 50, 200, 200)
VB.net與VB不同。
VB.net已經(jīng)有專門繪圖的類。
可以定義筆刷然后用Drawing類中的方法繪制。
Private Sub DrawEllipse()
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
formGraphics.DrawEllipse(myPen, New Rectangle(0,0,200,300))
myPen.Dispose()
formGraphics.Dispose()
End Sub
Private Sub DrawRectangle()
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
formGraphics.DrawRectangle(myPen, New Rectangle(0,0,200,300))
myPen.Dispose()
formGraphics.Dispose()
End Sub
。net ?其實(shí)還是很好繪制圖形的
你可以看下?Graphics ?類
Dim d As New Bitmap(Me.Width, Me.Height) ?‘一個(gè)圖片吧
? Dim g As Graphics = Graphics.FromImage(d)’繪制 ?準(zhǔn)備在這個(gè)圖片是進(jìn)行
然后 ?就是你繪制的東西了
線 就是 ??g.DrawLine()
圓 弧度 ?就用 ?g.DrawArc(Pens.Black, New Rectangle(0, 0, 400, 200), 0, 360)
復(fù)雜的就是 ? ? ?g.DrawBezier()
等 ?如果你用的是 VS的 ?編譯 ?上面都有詳細(xì)的參數(shù)說(shuō)明
Dim?d?As?New?Bitmap(Me.Width,?Me.Height)
Dim?g?As?Graphics?=?Graphics.FromImage(d)
g.DrawArc(Pens.Black,?New?Rectangle(0,?0,?200,?200),?0,?360)
g.DrawLine(Pens.Red,?New?Point(0,?0),?New?Point(200,?200))
g.DrawLines(Pens.Green,?New?Point()?{New?Point(0,?0),?New?Point(50,?40),?New?Point(50,?80),?New?Point(90,?70),?New?Point(100,?400)})
g.DrawBezier(Pens.Yellow,?New?Point(0,?100),?New?Point(0,?0),?New?Point(200,?0),?New?Point(200,?200))
g.Dispose()
Me.BackgroundImage?=?d
項(xiàng)目中要用圖形來(lái)顯示一個(gè)閥門的開度,以及控制閥的開度。本來(lái)是要用什么公司買的控件中的餅圖之類的實(shí)現(xiàn),不過(guò)我覺得也是麻煩,就想,還是自己畫吧。
首先添加一個(gè)TrackBar,名字是“TrackBar1”,一個(gè)label,名字是“L_A_SHANG”,一個(gè)GroupBox,名字是“GB_RIGHT”,,然后添加拉動(dòng)滾動(dòng)條時(shí)的處理函數(shù)
'上位機(jī)控制
Dim m_start As Integer
Dim RcDraw As System.Drawing.Rectangle
Private Sub TrackBar1_Scroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
m_start = (100 - TrackBar1.Value)
Me.L_A_SHANG.Text = Me.TrackBar1.Value.ToString
GB_RIGHT.Invalidate() '重畫GB_RIGHT
End Sub
添加GB_RIGHT重畫時(shí)的處理函數(shù)
Private Sub GB_RIGHT_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles GB_RIGHT.Paint
RcDraw.X = TrackBar1.Location.X - 40
RcDraw.Y = 20
RcDraw.Height = 100
RcDraw.Width = 20
e.Graphics.DrawRectangle(New Pen(Color.Blue, 5), RcDraw)
Dim i = TrackBar1.Location.X - 40
For i = TrackBar1.Location.X - 40 To TrackBar1.Location.X - 20
e.Graphics.DrawLine(New Pen(Color.Blue, 5), i, m_start + 20, i, 120)
Next
Me.L_A_SHANG.Text = Me.TrackBar1.Value.ToString + "%"
End Sub
到此以及可以實(shí)現(xiàn)拉動(dòng)條的時(shí)候,圖像跟著變化,并顯示百分比。
你可以通過(guò)用VB.net控制excel,讓excel生成曲線圖,然后利用excelVBA將圖輸出,最后導(dǎo)入到VB.net就可以了。
本文名稱:vbnet可以畫圖不,vb可以畫圖嗎
轉(zhuǎn)載注明:http://www.rwnh.cn/article12/dsigggc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、用戶體驗(yàn)、網(wǎng)站維護(hù)、品牌網(wǎng)站建設(shè)、App開發(fā)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)