vb.net如何绘图 vb绘图教程

VB.Net如何实现抠图并绘图

项目中要用图形来显示一个阀门的开度,以及控制阀的开度。本来是要用什么公司买的控件中的饼图之类的实现,不过我觉得也是麻烦,就想,还是自己画吧。

超过十年行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:成都网站设计、做网站,成都网站推广,成都网站优化,整体网络托管,小程序设计,微信开发,成都app软件开发公司,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!

首先添加一个TrackBar,名字是“TrackBar1”,一个label,名字是“L_A_SHANG”,一个GroupBox,名字是“GB_RIGHT”,,然后添加拉动滚动条时的处理函数

'上位机控制

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重画时的处理函数

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

到此以及可以实现拉动条的时候,图像跟着变化,并显示百分比。

vb.net绘图问题

代码:

Public Class Form1

'*********************************************************************   

'作者:章鱼哥,QQ:3107073263 群:309816713       

'如有疑问或好的建议请联系我,大家一起进步     

'*********************************************************************     

'绘制圆角矩形函数

Private Function GetRoundedRectPath(ByVal rect As Rectangle, ByVal radius As Integer) As System.Drawing.Drawing2D.GraphicsPath

rect.Offset(-1, -1)

Dim RoundRect As New Rectangle(rect.Location, New Size(radius - 1, radius - 1))

Dim path As New System.Drawing.Drawing2D.GraphicsPath

path.AddArc(RoundRect, 180, 90)     '左上角

RoundRect.X = rect.Right - radius   '右上角

path.AddArc(RoundRect, 270, 90)

RoundRect.Y = rect.Bottom - radius  '右下角

path.AddArc(RoundRect, 0, 90)

RoundRect.X = rect.Left             '左下角

path.AddArc(RoundRect, 90, 90)

path.CloseFigure()

Return path

End Function

'绘制矩形

Private Sub DrawingRect()

Dim g As Graphics = Me.CreateGraphics

Dim Pen As New Pen(Brushes.DarkRed, 2)

Dim Hei As Integer = Me.Height

Dim Wid As Integer = Me.Width

'矩形的位置和长宽随着窗体的变化而改变

Dim Rec As New Rectangle(Int(Wid / 5), Int(Hei / 5), Int(Wid / 2), Int(Hei / 2))

'  g.DrawRectangle(Pen, Rec)

'清楚现有的矩形

g.Clear(Me.BackColor)

g.DrawPath(Pen, GetRoundedRectPath(Rec, 30))

End Sub

Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

DrawingRect()

End Sub

Private Sub Form1_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged

Me.Invalidate() '此函数可引发Paint事件

End Sub

End Class

效果截图:

原窗口:

缩小后:

VB.net中如何画图?

VB.net与VB不同。

VB.net已经有专门绘图的类。

可以定义笔刷然后用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

vb.net绘制曲线图

。net  其实还是很好绘制图形的

你可以看下 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的  编译  上面都有详细的参数说明

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


本文名称:vb.net如何绘图 vb绘图教程
当前网址:http://azwzsj.com/article/dodcceg.html