当前位置:编程学习 > VB >>

zdg帮个忙

--------------------编程问答-------------------- ding --------------------编程问答-------------------- 用MSChart控件很方便。 --------------------编程问答-------------------- Option Explicit
'对于二维散点图来说,第一列代表了X轴坐标,第二列代表了Y轴坐标
'因此在定义二维数据时,第二维定义为0到1,第一维代表了第几点数据,可根据数据点数变化
'下面以数据点数有21点为列子
Dim MyData(360, 1) As Variant
Dim DataT(360, 1) As Variant
Private Const PI = 3.1415926
Dim intC As Integer
Dim dblStep As Double

Private Sub Command1_Click()
    Timer1.Enabled = Not Timer1.Enabled
    If Timer1.Enabled Then Command1.Caption = "停止示波器"
    If Not Timer1.Enabled Then Command1.Caption = "启动示波器"
End Sub

Private Sub Form_Load()
    Dim I As Integer
    dblStep = 8 * PI / 360
    '-----x轴坐标值-----Y轴坐标值----------
    For I = 0 To 360
        MyData(I, 0) = I
        MyData(I, 1) = 149 * Sin(dblStep * I) + 150
    Next I
    For I = 0 To 360
        DataT(I, 0) = I
        DataT(I, 1) = 149 * Cos(dblStep * I) + 150
    Next I
    intC = 1
    '波形图外观设置
    With MSChart1
        .TitleText = "速度 m/min"
        '    '设置图线的外观
        .Plot.SeriesCollection(1).Pen.Width = 40
        .Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid
        '    '设置XY轴
        .Plot.Axis(VtChAxisIdX).ValueScale.Auto = False
        .Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
        '// 设置最大值
        .Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 360
        .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 300
        '// 设置最小值
        .Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
        .Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0
        '//
        .Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 6 'X轴主要网格数量
        .Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 6 'Y轴主要网格数量
        .Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 0 'X轴次要网格数量
        .Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 'Y轴次要网格数量
'        .Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleDotted
'        .Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleDotted
        MSChart1.Plot.AutoLayout = False
        MSChart1.Plot.UniformAxis = False
        MSChart1.chartType = VtChChartType2dXY '设置图形为二维散点图
        MSChart1.ChartData = MyData '数据
    End With
End Sub

Private Sub Timer1_Timer()
    Dim intP As Integer
    For intP = 0 To 359
        MyData(intP, 1) = MyData(intP + 1, 1)
    Next intP
    MyData(360, 1) = 149 * Sin(intC * dblStep) + 150
    intC = (intC + 1) Mod 360
    MSChart1.ChartData = MyData
End Sub
--------------------编程问答-------------------- 上楼的兄弟,谢谢了,怎么好像没有设置滚动条啊!
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,