读书人

这是一个画图 函数解决办法

发布时间: 2013-11-15 22:28:15 作者: rapoo

这是一个画图 函数
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)

Dim bmpImage As Bitmap = New Bitmap(Me.pb_DrawArea.Size.Width, Me.pb_DrawArea.Size.Height)
Me.pb_DrawArea.Image = bmpImage

Dim g As Graphics = Graphics.FromImage(Me.pb_DrawArea.Image)


Dim pieRect As New System.Drawing.Rectangle(0, 0, Me.pb_DrawArea.Size.Width - 5, Me.pb_DrawArea.Size.Height - 5)

Dim stAngle '始角度
Dim enAngle '了角度

'L描画
If (mLowStartAngle < mHighStartAngle) Then
stAngle = STARTANGLE + mLowStartAngle
enAngle = mHighStartAngle - mLowStartAngle
Else
stAngle = STARTANGLE + mLowStartAngle
enAngle = 360 - (mLowStartAngle - mHighStartAngle)

End If
g.FillPie(Brushes.Gray, pieRect, stAngle, enAngle)


'H描画
If (mLowStartAngle < mHighStartAngle) Then
stAngle = STARTANGLE + mHighStartAngle
enAngle = 360 - (mHighStartAngle - mLowStartAngle)
Else
stAngle = STARTANGLE + mLowStartAngle
enAngle = mHighStartAngle - mLowStartAngle

End If
g.FillPie(Brushes.Orange, pieRect, stAngle, enAngle)

'直
Dim _x, _y, _ex, _ey As Integer
Dim boldPen As Pen = New Pen(Color.Black, 2)

_x = (Me.pb_DrawArea.Size.Width - 5) / 2
_y = 0
_ex = (Me.pb_DrawArea.Size.Width - 5) / 2
_ey = (Me.pb_DrawArea.Size.Height - 5) / 2
g.DrawLine(boldPen, _x, _y, _ex, _ey)


g.Dispose()

End Sub

不知道原理
通过 mLowStartAngle
mHighStartAngle
这两个变量控制原型的角度
帮我分析一下是怎么实现的
[解决办法]
画那种百分比的饼图
FillPie
重点是这个
http://msdn.microsoft.com/zh-cn/library/system.drawing.graphics.fillpie(v=vs.110).aspx

自己想一想就明白,再不明白我也没办法了,那不是编程的问题,而是应该学前班的阿姨教你了。

读书人网 >VB Dotnet

热点推荐