。net ?其實還是很好繪制圖形的
成都創(chuàng)新互聯(lián)是一家網(wǎng)站設計公司,集創(chuàng)意、互聯(lián)網(wǎng)應用、軟件技術為一體的創(chuàng)意網(wǎng)站建設服務商,主營產(chǎn)品:響應式網(wǎng)站開發(fā)、高端網(wǎng)站設計、成都全網(wǎng)營銷。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡互動的體驗,以及在手機等移動端的優(yōu)質呈現(xiàn)。網(wǎng)站設計制作、網(wǎng)站制作、移動互聯(lián)產(chǎn)品、網(wǎng)絡運營、VI設計、云產(chǎn)品.運維為核心業(yè)務。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務。
你可以看下?Graphics ?類
Dim d As New Bitmap(Me.Width, Me.Height) ?‘一個圖片吧
? Dim g As Graphics = Graphics.FromImage(d)’繪制 ?準備在這個圖片是進行
然后 ?就是你繪制的東西了
線 就是 ??g.DrawLine()
圓 弧度 ?就用 ?g.DrawArc(Pens.Black, New Rectangle(0, 0, 400, 200), 0, 360)
復雜的就是 ? ? ?g.DrawBezier()
等 ?如果你用的是 VS的 ?編譯 ?上面都有詳細的參數(shù)說明
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
設數(shù)據(jù)放在D(10)這個數(shù)組中,最小值1最大值1000,加一picture,屬性:width=1000,height=1000
for
i=1
to
10
picture1.line
((i-1)*100,d(i-1))-(i*100,d(i))
next
這只是簡單的,至于其它數(shù)據(jù),其它情況,或其它效果,只要改line后面的算法就可以了!
line
畫線命令,格式:
line
(起點X坐標,起點Y坐標)-(終點X坐標,終點Y坐標),顏色
Private Sub PictureBox2_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox2.Paint
Dim points As New List(Of Point)
points.Add(New Point(0, 0))
points.Add(New Point(1, 10))
points.Add(New Point(3, 15))
points.Add(New Point(14, 0))
points.Add(New Point(20, 60))
points.Add(New Point(40, 20))
points.Add(New Point(70, 50))
e.Graphics.DrawCurve(Pens.Red, points.ToArray)
End Sub
供參考,points可設為全局變量,那樣add隨便在哪增加,想要看見看上去動態(tài)的圖,那就在新增完n個后,繼續(xù)增加n+1個之時,放棄points中的第一個。
窗體上放三個按鈕,一個圖片框,看看效果?
Dim?a(300)?As?Single
Private?Sub?Command1_Click()
Picture1.Cls
Dim?i?As?Integer
Picture1.CurrentX?=?0
Picture1.CurrentY?=?a(0)
For?i?=?1?To?UBound(a)
Picture1.Line?-(i?*?30,?a(i))?'以數(shù)組索引為X坐標,數(shù)值元素為Y坐標
Next
End?Sub
Private?Sub?Command2_Click()
Picture1.Cls
Dim?i?As?Integer
Picture1.CurrentX?=?a(0)
Picture1.CurrentY?=?a(1)
For?i?=?3?To?UBound(a)?Step?2
Picture1.Line?-(a(i?-?1),?a(i))
'數(shù)組第一維為X坐標,第二維為Y坐標,以些類推。
'-(a(i?-?1)這個參數(shù)前一個負數(shù)不是負數(shù),是忽略的直線起點坐標,表示從當前默認坐標位置開始。
Next
End?Sub
Private?Sub?Command3_Click()?'生存數(shù)組隨機值
Dim?i?As?Integer
Randomize
For?i?=?0?To?UBound(a)
a(i)?=?Round(3000?*?Rnd,?2)
Next
End?Sub
Private?Sub?Form_Load()
Picture1.AutoRedraw?=?True
Command3_Click
End?Sub