十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在VB中绘制实时曲线是比较难的,一般要应用第三方控件或是Windows
在沐川等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、成都网站设计 网站设计制作按需定制设计,公司网站建设,企业网站建设,成都品牌网站建设,成都营销网站建设,成都外贸网站制作,沐川网站建设费用合理。
API函数来完成,但是如果你对实时曲线的要求不是很高,只要能表示出当前的一般情况的话,我们可以直接应用VB提供给我们的空间来完成.
原则上讲,直接在Form里绘制曲线都是可以的,MSDN上面很多例程就是直接在Form里面绘制图形的,Form作为绘制图形的容器,不过一般应用中Form中不可避免的会有很多其他控件,所以我们选择PictureBox作为绘制曲线的容器.
实时曲线的绘制一般借助于Timer控件来完成,使用Timer控件,定期将串口或是其他仪器中监测到的数据送往PictureBox1,而曲线的绘制一般画成折线图,采用PictureBox1的Line方法绘制.具体实现如下:
1.选择需要显示的窗体Picture1,加入图片框Picture1,根据实际需要设置图片的大小并移到合适的位置,并在图片的外面画好量程----时间坐标系;然后加上Timer控件以及两个CommandButton,界面就基本设置好了.
2.建立坐标系,根据Picture1的大小和高度设置画出坐标系的X轴和Y轴:
Picture1
.ScaleMode
=
1
‘以VB的基本单位作为建立坐标轴以及绘制图形的单位;
Picture1.Refresh
Picture1.CurrentX
=
Picture1.ScaleLeft
+100
Picture1.CurrentY
=
Picture1.ScaleTop
Picture1.Print
Picture1.ScaleHeight
-
100
Picture1.Line(Picture1.ScaleLeft+100,Picture1.ScaleTop+100)-(Picture1.ScaleLeft+100,
Picture1.ScaleHeight
-
100)
Picture1.CurrentX
=
Picture1.ScaleLeft
+100
Picture1.CurrentY
=
Picture1.ScaleHeight
Picture1.Print
“(0,0)”
Picture1.Line
(Picture1.ScaleLeft
+
100,
Picture1.ScaleHeight
-
100)-(Picture1.ScaleWidth
-
100,
Picture1.ScaleHeight
-
100)
Picture1.CurrentX
=
Picture1.ScaleWidth
Picture1.CurrentY
=
Picture1.ScaleHeight
Picture1.Print
Picture1.ScaleWidth-100
Picture1.AutoRedraw
=
True
‘必要时,用存储在内存中的图象进行重绘
3.绘制曲线并保存,我们这里以正弦曲线作为绘制曲线的数据来源,具体应用是可以采用由串口或其他仪器采集得到的数据.首先我们绘制一条中线,然后在Timer控件的Time事件中绘制曲线:
Picture1.Line
(Picture1.ScaleLeft,
CInt(Picture1.ScaleHeight
/
2))-(Picture1.ScaleWidth,
CInt(Picture1.ScaleHeight
/
2))
‘绘制中线
Private
Sub
Timer1_Timer()
Dim
y1
As
Integer
y1
=
CInt(Sin((x
-
Picture1.Left)
/
20
/
180
*
pi)
*
Picture1.ScaleHeight
/
2)
y1
=
CInt((Picture1.ScaleHeight
+
1000)
/
2)
-
y1
Picture1.Line
(x,
y)-(x
+
20,
y1)
x
=
x
+
20
y
=
y1
If
x
=
Picture1.ScaleWidth
Then
SavePicture
Picture1.Image,
"c:\sin.bmp"
‘保存图画,
。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连续绘制曲线图不消失怎么办?b.net连续绘制曲线图不消失的解决办法如下:
1、首先必须创建bitmap,关联到picturebox1.image上。
2、再在picturebox1.image上创建Graphics,再进行作图。即可显示线图。