在做串口采集实时曲线绘制,在picture1里建立picture2,然后在picture2里显示曲线,现在想显示x,y轴的刻度,也想实现鼠标点击曲线时显示坐标。请教达人啊!我弄了好久了,请各位帮帮我啊。

解决方案 »

  1.   

    建议楼主用MSChart,这个比较方便
    http://download.csdn.net/source/1483925
      

  2.   

    Private Sub Form_Load()
    Form1.Show
    Form1.Height = Form1.Width
    Form1.AutoRedraw = True
    Form1.Scale (0, 0)-(12, 12)
    Form1.DrawWidth = 2
    Line (6, 0)-(6, 12), vbRed
    Line (0, 6)-(12, 6), vbRed
    For I = 0 To 12
    Line (5.9, I)-(6, I), vbRed
    If I <> 6 Then
     CurrentY = CurrentY - 0.2
     Else
     CurrentY = CurrentY + 0.2
     End If
     CurrentX = 5.3
     Print (6 - I)
    Next
    For I = 0 To 12
    Line (I, 6)-(I, 6.1), vbRed
     CurrentY = 6.3
      CurrentX = CurrentX - 0.3
      If I <> 6 Then
     Print -1 * (6 - I)
     End If
    Next
    End Sub
      

  3.   

    计算鼠标点坐标并不难
    假设MouseDown为(x1,y1),坐标原点(x0,y0)
    那么鼠标点击时显示的坐标就为(x1-x0,y1-y0)
    但有个疑问:如何判断鼠标点击在曲线上了呢?
      

  4.   

    谢谢各位了,SYSSZ的程序我试一试,至于如何判断鼠标点在曲线上这点,我想只要能在picture2内点击显示坐标,对实际操作功能来说就基本满足了。
      

  5.   

    用line画出来了,就是在picture2的坐标系(左下角为原点,X向右为正,Y向上为正)里用picture2.currentX=0:Picture2.currentY=0:print"0"
    picture2.currentX=0:Picture2.currentY=800int"Y"
    picture2.currentX=3000:picture2.currentY=0:print"X"
    后X ,0,Y显示不了,是由于我设置picture2窗口大小的问题? 我调整变小后也一样看不到,不清楚什么原因。
      

  6.   

    以前做过取坐标的小程序,使用Scale重定picture坐标系统,鼠标移动取X、Y.当鼠标移到picture最右边或右下角时取得的X、Y不正确,有误差……因影响不大,就算了,但问题一直没解决……
      

  7.   

    用currentx=*:currenty=*:print"*" 语句会出现问题。如下方法可以实现刻度标注。另外用mschart控件在picture1中通过点击一点,在text1中显示坐标。
    Picture1.Scale (-10, 70)-(110, -5)
    For i = 70 To 0 Step -10
    Picture1.Line (-10, i)-(-8, i)Picture1.Print i
    Next i
    For j = 0 To 110 Step 10
    Picture1.Line (j, -5)-(j, -1)Picture1.Print j / 10
    Next j