当前位置: 代码迷 >> VB Dotnet >> 怎么将较长的地震记录曲线装入picturebox控件
  详细解决方案

怎么将较长的地震记录曲线装入picturebox控件

热度:90   发布时间:2016-04-25 02:18:29.0
如何将较长的地震记录曲线装入picturebox控件
开发环境:vs2010
目前使用方法:picturebox控件,长1000 ,宽500,地震数据为幅度在正负5v内的电压信号。由于picturebox长度最大为1000,当我的地震数据较大时(16384个数据点),picturebox就不能完全显示该图形曲线了,请问如何解决这个问题?
------解决方案--------------------
根据实际数据,找出最大最小值,然后根据绘图区域,折算成坐标,就是算比例
------解决方案--------------------
加一个水平滚动条,将下面 Debug.Print 部分更改为实际的 Draw 函数,对应的范围段也给出了。
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.HScrollBar1.Maximum = 16384 - 1
        Me.HScrollBar1.LargeChange = 1000
        Me.HScrollBar1.Value = 0
        Debug.Print("Draw(0,999)")
    End Sub

    Private Sub HScrollBar1_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll
        Debug.Print("Draw({0},{1})", e.NewValue, e.NewValue + 1000 - 1)
    End Sub

------解决方案--------------------
把绘制部分单独做成函数。
Draw(0,999) 就是绘制 [0,999] 范围的点;
Draw(e.NewValue, e.NewValue + 1000 - 1)
 就是绘制 [e.NewValue, e.NewValue + 1000 - 1] 范围的点。
------解决方案--------------------
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.HScrollBar1.Maximum = 16384 - 1 '总数 16384
    Me.HScrollBar1.LargeChange = 1000  '滚动一页 1000,滚动一格默认为 1
    Me.HScrollBar1.Value = 0           '最开始滚动条在最右侧
    Draw(0,999)                        '所以初始显示 [0,999] 范围
End Sub

'如果点滑块右侧,一次滚动一页,e.NewValue = 1000
Private Sub HScrollBar1_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll
    Draw(e.NewValue, e.NewValue + 1000 - 1) '这时显示 [1000, 1999] 范围
End Sub

'如果点右箭头,一次滚动一格,e.NewValue = 1001
Private Sub HScrollBar1_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll
    Draw(e.NewValue, e.NewValue + 1000 - 1) '这时显示 [1001, 2000] 范围
End Sub

哪里不合你的要求了?
代码又不写,光在拍脑袋猜,运行一下看效果会死啊?