工具:

http://blog.csdn.net/bcbobo21cn/article/details/44200205

demo工程:

http://pan.baidu.com/s/1kVEkDnT

1 新建单文档MFC exe 工程

2 添加菜单和菜单的消息处理函数

3 按下图代码运行,啥也没画出来;

下断点检查y的值,其值一直是-100,不会变;

因为radian定义为了int,重新定义为double,好了;另外还要把pDC->MoveTo()移动到循环之外;

4 添加四个菜单

5 主要代码

视类头文件添加

private:
int qvtype;
int w,h;  //存储窗口宽和高
int w2,h2;  //存储窗口宽和高的一半

视类预定义

#define PI 3.14159265359

菜单消息处理函数

void CMathqv1View::OnMenuitem32771() 
{
// TODO: Add your command handler code here
qvtype=1;
Invalidate();
}

void CMathqv1View::OnMenuitem32772() 
{
// TODO: Add your command handler code here
qvtype=2;
Invalidate();
}

void CMathqv1View::OnMenuitem32773() 
{
// TODO: Add your command handler code here
qvtype=3;
Invalidate();
}

void CMathqv1View::OnMenuitem32774() 
{
// TODO: Add your command handler code here
qvtype=4;
Invalidate();
}

视类OnDraw函数

void CMathqv1View::OnDraw(CDC* pDC)
{
CMathqv1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
int x=0,y=0;
double radian;
CPen pen(PS_SOLID,1,RGB(255,0,0));//构造画笔对象
CPen *pOldPen;
pOldPen=pDC->SelectObject(&pen);

RECT rect1;
GetClientRect(&rect1);
w=rect1.right;
h=rect1.bottom;
w2=rect1.right/2;
h2=rect1.bottom/2;

switch(qvtype)
{
case 1: // 正弦
pDC->MoveTo((int)x,(int)h2);
for(x=0;x<w;x++)
{
  //弧度=X坐标/曲线宽度*角系数*π
  //Y坐标=振幅*曲线宽度*sin(弧度)
  radian =x/((double)60*2)*PI;
  y=sin(radian)*2*60;   
  pDC->LineTo(x,y+h2);
}
break;
case 2: // 余弦
pDC->MoveTo((int)x,(int)h2+120);
for(x=0;x<w;x++)
{
  radian =x/((double)60*2)*PI;
  y=cos(radian)*2*60;   
  pDC->LineTo(x,y+h2);
}
break;
case 3: // 正切
pDC->MoveTo((int)x,(int)h2);
for(x=0;x<w;x++)
{
  radian =x/((double)60*2)*PI;
  y=tan(radian)*2*60;   
  pDC->LineTo(x,y+h2);
}

break;
case 4: // 反正弦
pDC->MoveTo((int)x,(int)h2);
for(x=0;x<w;x++)
{
  radian =x/((double)60*2);
  y=asin(radian)*2*60;   
  pDC->LineTo(x,y+h2);
}

break;

}

pDC->SelectObject(pOldPen);//恢复先前的画笔
}

6 效果

正弦

余弦

正切

反正弦,碉堡了;画出一个如下错误曲线;反正弦记不清了;看来还要再上一下初中;

变更背景为黑色见

http://blog.csdn.net/bcbobo21cn/article/details/50957548

图解VC++绘制数学曲线相关推荐

  1. opencv建立数学坐标系绘制函数曲线

      周末闲来无事用opencv简单实现了一个可以在mat中绘制曲线的工具类,方便学习图像处理相关的内容.   坐标系本身比较简单就是常规的数学坐标系,可以自由设置图像中坐标系的范围,内部会自动映射需要 ...

  2. MFC中绘制动态曲线

    在工控监测领域,经常需要动态绘制曲线,观察曲线的变化趋势,绘制波形图,绘制频谱等.在前面4讲中介绍了MFC经常用的TeeChart控件和Hight-Speed Chart Ctrl,这两个都是MFC绘 ...

  3. python绘制繁花曲线代码_使用python和pygame绘制繁花曲线的方法

    前段时间看了一期<最强大脑>,里面各种繁花曲线组合成了非常美丽的图形,一时心血来潮,想尝试自己用代码绘制繁花曲线,想怎么组合就怎么组合. 真实的繁花曲线使用一种称为繁花曲线规的小玩意绘制, ...

  4. HTML5 Canvas中绘制贝塞尔曲线

    绘制贝塞尔曲线 贝塞尔曲线于1959年,由法国物理学家与数学家Paul de Casteljau所发明,于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,并用于汽车的车 ...

  5. Python+matplotlib绘制函数曲线查找函数极值

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书详情: 配套资源:用 ...

  6. teechart绘制实时曲线_关于PIII曲线

    近期忙,忙于生计,三千出头的工资早已力不从心~公众号自上次更新以来已久久没有动静.今天决定再更新一篇:关于水文P-III曲线的一些内容.P-III曲线这里只讲一下绘图的问题.最近在做了几个频率曲线适线 ...

  7. addroutes没添加进去_CAD中如何绘制函数曲线及添加数学公式

    如何在CAD中绘制函数曲线?CAD与EXCELL结合,绘制函数曲线相当厉害.本文采用中望CAD软件,举例说明方法: 一.以三角函数y=sinx为例. 1.在A列从0开始以步长0.4(可自行调节)取若干 ...

  8. Latex-TiKZ绘制数学平面几何图教程

    Latex-TiKZ绘制数学平面几何图教程 你好china 基本图形 辅助网格 点 直线 矩形 圆 椭圆 弧 曲线 坐标轴 图形控制 点的偏移 两个点定义出一个点 平移 缩放 旋转 倾斜变换 定点旋转 ...

  9. OpenGL程序VC框架:Bezier 曲线

    OpenGL程序VC框架:Bezier 曲线 下面以画一条 Bezier 曲线为例,详细介绍VC++ 上 OpenGL编程的方法.文中给出了详细注释,以便给初学者明确的指引.一步一步地按所述去做,你将 ...

最新文章

  1. ffmpeg api的应用——提取视频图片
  2. linux qml 环境,利用Qml与Golang打造Gui客户端(二)qamel环境安装
  3. 敲敲代码调调参就给钱,你来不来?| 论文有奖复现
  4. linux 分布式 程序管理,linux--------------git分布式系统项目管理(1)
  5. python seek tell_PYTHON学习14.09:Python seek()和tell()函数详解
  6. python 基础学习--运算符集合
  7. EditText焦点自动带出软键盘问题
  8. 基于51单片机中文汉字LCD12864滚动显示屏仿真(源码+仿真+全套资料)
  9. 浓缩书应用 Blinkist - 令人惊艳的商业策略
  10. 极限中0除以常数_0的美好
  11. JS代码获取当前项目名称
  12. [Unity]对接华为sdk 登录
  13. 异常:egret获取引擎列表失败
  14. arm方案商,三星S5P6818开发板ARM Cortex-A53架构
  15. 云ERP来的正是时候!
  16. JAVA 设计模式(三)—— 设计模式之工厂模式
  17. 学习python数据分析路线图_henry_dx_新浪博客
  18. DataTables+Ajax分页简单应用
  19. 语义分割看这一篇就够了!
  20. 拓邦新能上市申请获创业板受理:毛利率持续下降,张震华为大股东

热门文章

  1. JSON||获取数据||json数据语法
  2. first-child伪类选择器没有效果(不起作用)
  3. CTFshow 反序列化 web275
  4. Keil MDK在个别电脑上下载程序失败的解决办法
  5. POJ2536、3370
  6. C/C++语言void及void指针深层探索 .
  7. 简单探索MNIST(Softmax回归和两层CNN)-Tensorflow学习
  8. 2.1.1 正则化基本介绍
  9. springboot情操陶冶-web配置(四)
  10. 利用推送测试工具,测试推送是否写好