重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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
采用默认单位缇twips,Picture1 背景色为黑色,仪表盘从-10度到190度,刻度显示-30到70
Dim px As Long, py As Long, i As Long
Picture1.Cls
Picture1.ForeColor = H33AA22
Picture1.Circle (3000, 3000), 2800, ha0a0a0, -350 * PI / 180, -190 * PI / 180, 1
For i = 0 To 20
px = cRadius * Cos(-10 * PI / 180 + i * 10 * PI / 180) + CX
py = cRadius * -Sin(-10 * PI / 180 + i * 10 * PI / 180) + CY '电脑和标准坐标系Y轴相反,所以这里用 -Sin
Picture1.PSet (px, py), H5555EE '为了更加醒目可以画圆
Picture1.CurrentX = px '这里定位刻度文字位置,可以细调
Picture1.CurrentY = py
Picture1.Print Format(-30 + i * 5)
Next i
你把问题想简单点,直接在PANEL空间上使用GD+画指针就行了。算出两点划线还不容易么?用图片的话需要旋转,而且锯齿非常严重@!
思路错误,应该是先制作好仪表盘图片,指针图片,使用代码来切换图片
微软上有Microsoft Chart控件的示例程序,非常详细,一看就会。
但我微软站上的刚没找到,这里找到一个
可以直接显示的。你看下面的示例,使用vb.net画的齿轮:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
b = New Bitmap(PictureBox1.Width, PictureBox1.Height)
g = Graphics.FromImage(b)
'g.RotateTransform(90)
g.Clear(Color.White)
g.TranslateTransform(PictureBox1.Width / 2, PictureBox1.Height / 2)
g.ScaleTransform(1, -1)
'g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
DrawCL(g, New PointF(Val(TextBox1.Text), Val(TextBox2.Text)), Val(TextBox3.Text), Val(TextBox4.Text), Val(TextBox5.Text), Val(TextBox6.Text), Val(TextBox7.Text), Val(TextBox8.Text), Val(TextBox9.Text))
DrawCL(g, New PointF(Val(TextBox18.Text), Val(TextBox17.Text)), Val(TextBox16.Text), Val(TextBox15.Text), Val(TextBox14.Text), Val(TextBox13.Text), Val(TextBox12.Text), Val(TextBox11.Text), Val(TextBox10.Text))
PictureBox1.Image = b
End Sub