图解VC++绘制数学曲线
工具:
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++绘制数学曲线相关推荐
- opencv建立数学坐标系绘制函数曲线
周末闲来无事用opencv简单实现了一个可以在mat中绘制曲线的工具类,方便学习图像处理相关的内容. 坐标系本身比较简单就是常规的数学坐标系,可以自由设置图像中坐标系的范围,内部会自动映射需要 ...
- MFC中绘制动态曲线
在工控监测领域,经常需要动态绘制曲线,观察曲线的变化趋势,绘制波形图,绘制频谱等.在前面4讲中介绍了MFC经常用的TeeChart控件和Hight-Speed Chart Ctrl,这两个都是MFC绘 ...
- python绘制繁花曲线代码_使用python和pygame绘制繁花曲线的方法
前段时间看了一期<最强大脑>,里面各种繁花曲线组合成了非常美丽的图形,一时心血来潮,想尝试自己用代码绘制繁花曲线,想怎么组合就怎么组合. 真实的繁花曲线使用一种称为繁花曲线规的小玩意绘制, ...
- HTML5 Canvas中绘制贝塞尔曲线
绘制贝塞尔曲线 贝塞尔曲线于1959年,由法国物理学家与数学家Paul de Casteljau所发明,于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,并用于汽车的车 ...
- Python+matplotlib绘制函数曲线查找函数极值
推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书详情: 配套资源:用 ...
- teechart绘制实时曲线_关于PIII曲线
近期忙,忙于生计,三千出头的工资早已力不从心~公众号自上次更新以来已久久没有动静.今天决定再更新一篇:关于水文P-III曲线的一些内容.P-III曲线这里只讲一下绘图的问题.最近在做了几个频率曲线适线 ...
- addroutes没添加进去_CAD中如何绘制函数曲线及添加数学公式
如何在CAD中绘制函数曲线?CAD与EXCELL结合,绘制函数曲线相当厉害.本文采用中望CAD软件,举例说明方法: 一.以三角函数y=sinx为例. 1.在A列从0开始以步长0.4(可自行调节)取若干 ...
- Latex-TiKZ绘制数学平面几何图教程
Latex-TiKZ绘制数学平面几何图教程 你好china 基本图形 辅助网格 点 直线 矩形 圆 椭圆 弧 曲线 坐标轴 图形控制 点的偏移 两个点定义出一个点 平移 缩放 旋转 倾斜变换 定点旋转 ...
- OpenGL程序VC框架:Bezier 曲线
OpenGL程序VC框架:Bezier 曲线 下面以画一条 Bezier 曲线为例,详细介绍VC++ 上 OpenGL编程的方法.文中给出了详细注释,以便给初学者明确的指引.一步一步地按所述去做,你将 ...
最新文章
- ffmpeg api的应用——提取视频图片
- linux qml 环境,利用Qml与Golang打造Gui客户端(二)qamel环境安装
- 敲敲代码调调参就给钱,你来不来?| 论文有奖复现
- linux 分布式 程序管理,linux--------------git分布式系统项目管理(1)
- python seek tell_PYTHON学习14.09:Python seek()和tell()函数详解
- python 基础学习--运算符集合
- EditText焦点自动带出软键盘问题
- 基于51单片机中文汉字LCD12864滚动显示屏仿真(源码+仿真+全套资料)
- 浓缩书应用 Blinkist - 令人惊艳的商业策略
- 极限中0除以常数_0的美好
- JS代码获取当前项目名称
- [Unity]对接华为sdk 登录
- 异常:egret获取引擎列表失败
- arm方案商,三星S5P6818开发板ARM Cortex-A53架构
- 云ERP来的正是时候!
- JAVA 设计模式(三)—— 设计模式之工厂模式
- 学习python数据分析路线图_henry_dx_新浪博客
- DataTables+Ajax分页简单应用
- 语义分割看这一篇就够了!
- 拓邦新能上市申请获创业板受理:毛利率持续下降,张震华为大股东