标题:VC坐标系如何绘制曲线?并实现坐标系的缩放和鼠标滑轮滚动Y轴跟着增长??? ...
只看楼主
d0113150746
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-6-21
 问题点数:0 回复次数:2 
VC坐标系如何绘制曲线?并实现坐标系的缩放和鼠标滑轮滚动Y轴跟着增长???
void CWorkView::OnDraw(CDC* pDC)
{
    // TODO: Add your specialized code here and/or call the base class
    CRect rect;
    GetClientRect(&rect);
    pDC->SetMapMode(MM_ANISOTROPIC);
    pDC->SetViewportOrg(rect.right-685,rect.bottom-575);
    pDC->SetViewportExt(rect.right-200,rect.bottom);
    pDC->SetWindowOrg(0,0);
    pDC->SetWindowExt(1000,1000);   

         CString str;
         pDC->Rectangle(0,0,rect.right-185,rect.bottom+25);//画一个矩形
         CPen *pPenRed=new CPen(); //创建画笔对象
         pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));//红色画笔
         CPen *pPen=NULL;
         CGdiObject *pOldPen=pDC->SelectObject(pPenRed);//保存当前红色画笔

         
         pDC->MoveTo(20,20);//绘制坐标轴
         pDC->LineTo(20,rect.bottom-20);//Y
         pDC->LineTo(815,rect.bottom-20);//x
//绘制x轴刻度
         for(int i=0;i<17;i++)  //绘制最高刻度
         {
           str.Format("%d",i*128);
           pDC->TextOut(30+48*i,rect.bottom,str);//控制间距

           //绘制想x轴刻度
           pDC->MoveTo(45+48*i,rect.bottom);
           pDC->LineTo(45+48*i,rect.bottom-20);
         }

         for(i=0;i<33;i++)  //绘制中间刻度
         {
           //绘制想x轴刻度
           pDC->MoveTo(45+24*i,rect.bottom-5);
           pDC->LineTo(45+24*i,rect.bottom-20);
         }

         for(i=0;i<128;i++)  //绘制最低刻度
         {
           //绘制想x轴刻度
           pDC->MoveTo(45+6*i,rect.bottom-10);
           pDC->LineTo(45+6*i,rect.bottom-20);
         }

//绘制y轴刻度
         for(i=1;i<=7;i++)
         {
             str.Format("%d",i);
             pDC->TextOut(2,rect.left+740-100*i,str);  //标度
             //绘制Y轴刻度
             pDC->MoveTo(20,rect.left+740-100*i);
             pDC->LineTo(35,rect.left+740-100*i);
         }

         for(i=2;i<=13;i++)
         {
             //绘制Y轴刻度
             pDC->MoveTo(20,rect.left+740-50*i);
             pDC->LineTo(30,rect.left+740-50*i);
         }

         for(i=10;i<70;i++)
         {
             //绘制Y轴刻度
             pDC->MoveTo(20,rect.left+740-10*i);
             pDC->LineTo(25,rect.left+740-10*i);
         }

} 小弟初学VC 还望大侠们帮帮,我只绘制出了坐标系,不会绘制曲线,曲线数据从随机函数产生1~10个,怎样绘制在上边的坐标戏中???Y轴能跟着数据的高度而增长呢????
搜索更多相关主题的帖子: 鼠标 曲线 坐标系 缩放 滑轮 
2010-06-21 09:56
d0113150746
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-6-21
得分:0 
自个先顶一下。
2010-06-21 10:16
d0113150746
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-6-21
得分:0 
    .
2010-06-21 16:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-310790-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.425930 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved