QQ登录

只需一步,快速开始

104上位机VC MFC设备上下文CDC绘制正弦曲线方法

[ 复制链接 ]

104上位机VC MFC设备上下文CDC绘制正弦曲线方法

104上位机VC MFC设备上下文CDC绘制正弦曲线方法

104上位机VC MFC设备上下文CDC绘制正弦曲线方法


功能展示

绘制正弦曲线,在多媒体教学用的比较多,我们当前例程用设备上下文函数MoveTo(), LineTo()实现曲线的绘制;效果如图
要点提示
正弦曲线上,X坐标指定,Y的坐标可以通过公式   弧度=X坐标/曲线宽度*角系数*π ,Y坐标=振幅*曲线宽度*sin(弧度)来计算获得,计算中用到radian()函数,此函数的使用须包含基所在的头文件,文件#include <math.h>




实现功能
1.新建基于对话框的应用程序

2.在主对话框中的绘制函数OnPaint()中实现曲线的绘制
  1. if(!m_bDraw)
  2.                 return;
  3.         //
  4.         CDC *pDC = GetDC();
  5.         //建立画笔
  6.         CPen cpen,pen;
  7.         pen.CreatePen(PS_SOLID,4,RGB(0,255,0));
  8.         cpen.CreatePen(PS_SOLID,2,RGB(0,0,255));
  9.         pDC->SelectObject(&cpen);
  10.         //指定原点
  11.         pDC->SetViewportOrg(100,245);        
  12.         pDC->SetTextColor(RGB(255,0,0));
  13.         //绘制横坐标
  14.         CString sPIText[]={"-1/2π","","1/2π","π","3/2π","2π","5/2π","3π","7/2π","4π","9/2π","5π"};
  15.         for(int n=-1,nTmp=0;nTmp<=660;n++,nTmp+=60)
  16.         {
  17.                 pDC->LineTo(60*n,0);
  18.                 pDC->LineTo(60*n,-5);
  19.                 pDC->MoveTo(60*n,0);
  20.                 pDC->TextOut(60*n-sPIText[n+1].GetLength()*3,16,sPIText[n+1]);
  21.         }
  22.         //
  23.                 pDC->MoveTo(0,0);
  24.         CString sTmp;
  25.         //绘制纵坐标
  26.         
复制代码
  1. for(n=-4,nTmp=0;nTmp<=180;n++,nTmp=60*n)
  2.         {
  3.                 pDC->LineTo(0,60*n);
  4.                 pDC->LineTo(5,60*n);
  5.                 pDC->MoveTo(0,60*n);
  6.                 sTmp.Format("%d",-n);
  7.                 pDC->TextOut(10,60*n,sTmp);
  8.         }        
  9. //绘制正弦网线
  10.         double y,radian;        
  11.         pDC->SelectObject(&pen);
  12.         for(int x=-60;x<600;x++)
  13.         {
  14.                 //弧度=X坐标/曲线宽度*角系数*π
  15.                 //Y坐标=振幅*曲线宽度*sin(弧度)
  16.                 radian =x/((double)60*2)*PI;
  17.                 y=sin(radian)*2*60;
  18.                 pDC->MoveTo((int)x,(int)y);
  19.                 pDC->LineTo((int)x,(int)y);
  20.         }
  21.         cpen.DeleteObject();
  22.         pen.DeleteObject();
  23.         ReleaseDC(pDC);
复制代码
其中变量m_bDraw为爱控变量,标识 是否绘制曲线


我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:104.上位机VC MFC设备上下文CDC绘制正弦曲线方法.rar 
文件大小:132.79 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索