本人用FormView视图中的静态控件内绘制波形图,静态控件宽度为800像素,但是点数在500到10000之间变化(即点数可以为500、1000、1500……),如何实现啊?本人只用过最多一个像素表示一个点的值,这么密集点的表示应该用什么方法啊?
编程使用VC6下的MFC实现的
希望高手指导,不胜感激!

解决方案 »

  1.   

    设置一个步长,动态调整。
    比如设置X方向的步长为double Xratio,X方向为double Yratio
    当X方向有10000个点的话,Xratio = 10000/800Yratio是用来调整Y方向的比例的,比如你的窗口高度为600,而数据的值可能大于600,那么就要用这个比例来调整了。
    比如数据的值最大为1000,Yratio = 1000/600取X方向从1到800循环,
    for(i=1;i<=800;i++){
       X = int( i * Xratio) ;
       Y = int(RawData(X) * Yratio);
       //然后在坐标(i,Y)处画点
       ...
       }楼主明白了么
      

  2.   

    坐标变换到逻辑坐标下
    CDC* pDc;
    pDC->SetMapMode(MM_ANISOTROPIC);