关于文件中数据与绘制出的曲线的有关问题

关于文件中数据与绘制出的曲线的问题?
我绘制曲线的方法是用找出时间的最大值,乘以100000,把它化为整数,9.00194×100000=900194;找出温度最大值*1000,39.323*1000=39323,然后设置映射模式SetMapMode(MM_ANISOTROPIC),设置窗口范围         pDC-> SetWindowExt(900194,39323);,
设置窗口原点pDC-> SetWindowOrg(0,0);设置视口范围
GetClientRect(&rect);pDC-> SetViewportExt(rect.right,rect.bottom);
设置视口原点pDC-> SetViewportOrg(rect.left,rect.bottom);
接下来就画曲线了,Moveto(0.00028*100000,14.484*1000),LineTo(1.00056*100000,16.446*1000);......
画完后我想点击曲线上的任意一点,就可以显示出与之对应的文件中的一行数据,我的想法是通过鼠标点击位置,换算出鼠标点的逻辑X坐标,Y坐标不管,如果逻辑X坐标为399795,再用文件中的时间列乘以100000后一一和399795比较,找出和它最接近的值,然后把这行显示出来,可是我觉得这种方法效率不高,每点击一下鼠标要循环比较那么多次,请问朋友们有更好的方法么?


------解决方案--------------------
你的问题其实就是查找匹配。由于时间值是有序的,所以一般的查找算法都可以很好的执行,比如对半查找等。
------解决方案--------------------
应该将文件中的时间列乘以100000后存储起来,以后与他们比较,免得每次都要执行乘心100000.查找是难免的吧,找个相对好点的算法比较现实。
------解决方案--------------------
这个东西挺好玩的,看看有没高手知道~
------解决方案--------------------
还想问一下楼主,你曲线绘在什么地方呢?如果你绘在窗体上的画,如果曲线长度超过这个窗体绘不下去了怎么办呢?