我用picturebox绘制了一个时间、压力坐标轴,
并读取了
小时 压力(KPa)
1.977778 12035.170
2.979167 12035.020
6.780556 12035.070
14.981944 12035.150
19.983333 12035.040
21.984722 12034.970
22.986111 12034.980
23.787500 12035.070
25.988889 12035.050
29.990278 12035.110
30.991667 12035.070
31.193056 12035.060
38.994444 12035.140
39.995833 12035.000
40.997222 12035.060
而且数据量很大,并绘制了曲线,如何我用鼠标点击坐标上的某个位置,显示这个位置的时间和压力,求高手给个最快的算法。
并读取了
小时 压力(KPa)
1.977778 12035.170
2.979167 12035.020
6.780556 12035.070
14.981944 12035.150
19.983333 12035.040
21.984722 12034.970
22.986111 12034.980
23.787500 12035.070
25.988889 12035.050
29.990278 12035.110
30.991667 12035.070
31.193056 12035.060
38.994444 12035.140
39.995833 12035.000
40.997222 12035.060
而且数据量很大,并绘制了曲线,如何我用鼠标点击坐标上的某个位置,显示这个位置的时间和压力,求高手给个最快的算法。
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox "时间=" & X
MsgBox "压力=" & X
End Sub
'当然X,Y还要和你的程序中所画的时间,压力值有一个对应的转换
150,210
200,220绘在显示区时,假设是1:1的关系,这是最简单的关系了,没考虑显示区滚动的问题(比如有10000个点,就得显示个滚动条).那么,你鼠标的MouseUp事件里就能得到一个坐标,直接把这个X与Y到上面的三个点中循环比较,并看看离哪个点的距离最近(一般来说,鼠标直接点到那个像素上的可能性不是很大,你不是在玩狙击游戏),就判断为用户想点的是这个点.
Debug.Print X; Y
End Sub
Debug.Print X; Y
End Sub