这是一个画图 函数,该如何解决
这是一个画图 函数
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
自己想一想就明白,再不明白我也没办法了,那不是编程的问题,而是应该学前班的阿姨教你了。
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
自己想一想就明白,再不明白我也没办法了,那不是编程的问题,而是应该学前班的阿姨教你了。