资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

请教高手,建立直角坐标系

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

本人为vc++菜鸟级人物,今有一个对于高手来说很简单的任务,可是我由于时间紧迫,所以请教大家了。  
   
  我用vc画了一个坐标图,横坐标0到360度,刻度为1度,纵坐标为0到100次,刻度为一次  
  是用文档实现的,可是我不知道怎么改成用对话框实现,需要改动哪些方面呢?图上要能够显示数据的  
  关键代码如下:  
  void   CGridView::Drawpix(CDC*   pDC,int   x,int   y)  
  {  
          CRect   rectClient;   //  
          GetClientRect(rectClient);//返回客户区矩形的大小  
          pDC->SetMapMode(MM_ANISOTROPIC);//设定映射模式为MM_ANISOTROPIC  
          int   l,t,r,b,i;  
          int   split_heightL=6,split_heightS=3;  
          l=rectClient.left+40   ;t=rectClient.top+20   ;r=rectClient.right-20   ;b=rectClient.bottom-40   ;  
                   
          //绘坐标刻度x轴  
          pDC->MoveTo   (l,b);  
          pDC->LineTo   (r,b);  
           
          pDC->MoveTo   (l,b);  
          pDC->LineTo   (l,t);  
           
          for(int   ix=l;ix<=r;ix+=(r-l)/36)  
          {  
                  pDC->MoveTo   (ix,b-1);  
                  pDC->LineTo   (ix,b-split_heightL-1);  
                   
          }  
           
          for(ix=l;ix<=r;ix+=(r-l)/360)  
          {  
                  pDC->MoveTo   (ix,b-1);  
                  pDC->LineTo   (ix,b-split_heightS-1);  
          }  
           
          //绘坐标刻度y轴  
          for(int   iy=t;iy<=b;iy+=(b-t)/10)  
          {  
                  pDC->MoveTo   (l+1,iy);  
                  pDC->LineTo   (l+split_heightL+1,iy);  
                   
          }  
           
          for(iy=t;iy<=b;iy+=(b-t)/100)  
          {  
                  pDC->MoveTo   (l+1,iy);  
                  pDC->LineTo   (l+split_heightS+1,iy);  
          }  
           
           
           
          for(ix=l,i=0;ix<=r,i<=18;ix+=(r-l)/18,i++)  
          {  
                  CString   str;  
                  str.Format("%d",i*20);  
                  pDC->TextOut(ix,b+10,str);  
          }  
           
          for(iy=b-(b-t)/10,i=1;iy>=t,i<=10;iy-=(b-t)/10,i++)  
          {  
                   
                  CString   str;  
                  str.Format("%d",i*10);  
                  pDC->TextOut(l-30,iy,str);  
          }  
           
           
          pDC->MoveTo(r,b);  
          pDC->LineTo(r-10,b-10);  
          pDC->MoveTo(r,b);  
          pDC->LineTo(r-10,b+10);  
           
          pDC->MoveTo(l,t);  
          pDC->LineTo(l+10,t+10);  
          pDC->MoveTo(l,t);  
          pDC->LineTo(l-10,t+10);  
           
           
           
          //坐标标题  
          pDC->TextOut   (r-30,b-25,_T("度"));         //横坐标  
          pDC->TextOut   (l-30,t-15,_T("次"));   //纵坐标  
          CPoint   pt1;  
          pt1.x=(r-l)*x/360+l;  
          pt1.y=(b-t)*y/100+t;  
          //画点  
          pDC->SetPixel(pt1,RGB(255,0,0));          
  }  
  调用的时候,Drawpix(pDC,180,50);  
   
  麻烦各位大大帮帮小弟吧~~~

网友回答:


 

 
热门推荐笔记本: 东芝笔记本
相关文章:
笔记本相关:
IT技术文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved