OpenGL举例,MFC举例:画3条函数曲线

[MFC]使用ChartCtrl类绘图 MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个C++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。vc也指它的内部编译器,集成开发环境必须有一个编译器内核,例如DevC++其中一个编译器内核就是gcc。... 阅读详情

感谢大家支持,超级玛丽的下载次数超过9000了!我最近码OpenGL,这是一个例子。画了三个等价无穷小曲线。主要代码如下:

 

#include "math01.h"

#define XSTEP (3.14/40)
#define XPOINT 0.02
#define POINTNUM 30

 

void DrawRect(GLfloat x, GLfloat y,GLfloat w, GLfloat h)
{
  glRectf(x,y,x+w,y+h);
}


void CALLBACK display(void)
{
 int i;

 glColor3f(0.0,0.3,0.0);
 DrawRect(-0.5,-0.5,1.0,1.0);

 // 两条坐标
 glColor3f(0.0,1.0,0.0);
 for(i=0;i<POINTNUM+10;i++)
 { 
  DrawRect(-1.0+i*XSTEP*2/3, -0.5,
   XPOINT,XPOINT);
 }
 for(i=0;i<POINTNUM+10;i++)
 { 
  DrawRect( -0.5,-1.0+i*XSTEP*2/3,
   XPOINT,XPOINT);
 }

 //sin
 glColor3f(1.0,0.0,0.0);
 for(i=0;i<POINTNUM;i++)
 {
  DrawRect(-0.5+i*XSTEP*2/3, -0.5+sin(i*XSTEP)*2/3,
   XPOINT,XPOINT);
 }

 //y=x
 glColor3f(1.0,1.0,0.0);
 for(i=0;i<POINTNUM;i++)
 {
  DrawRect(-0.5+i*XSTEP*2/3, -0.5+i*XSTEP*2/3,
   XPOINT,XPOINT);
 }
 
 //y=e(x)
 glColor3f(1.0,0.0,0.5);
 for(i=0;i<20;i++)
 {
  DrawRect(-0.5+i*XSTEP*2/3, -0.5+(E_Exp(i*XSTEP)-1)*2/3,
   XPOINT,XPOINT);
 }

 glFlush(); 
}

//////////////////////////////////////////////////////////////////////////////

 

//math01.h
//数学计算公式

#ifndef MYMATH01_H
#define MYMATH01_H

//x的n次方
float Mul(float x,int n);
int Jie(int n);
float E_Exp(float x);

float Mul(float x,int n)
{
 int i=0;
 float k=1;

 if(0==n)
  return 1;
 for(i=0;i<n;i++)
 {
  k*=x;
 }
 return k;
}

//n的阶乘
int Jie(int n)
{
 int k=1;

 if(0==n)
  return 1;
 for(;n>0;n--)
 {
  k*=n;
 }
 return k;

}

//e的x次方 麦克劳林级数,没有余项
float E_Exp(float x)
{
 int i;
 float sum=0;

 for(i=0;i<20;i++)
 {
  sum+=Mul(x,i)/Jie(i);
 }
 return sum;

}

#endif

 

//////////////////////////////////////////////////////////////////////////////////

//MFC版 CxxxxxDlg::OnPaint

 

  CPaintDC mydc(this); // device context for painting
  CPen pen1(PS_SOLID, 1, RGB(0,180,50));
  CPen pen2(PS_SOLID, 2, RGB(0,180,50));
  int i;
  float temp;

  mydc.MoveTo(0,350);
  mydc.LineTo(400,350);

  mydc.MoveTo(50,0);
  mydc.LineTo(50,400);
  
  // x取值范围 0, pi/2
  mydc.MoveTo(50,350);
  for(i=0;i<20;i++)
  {
   temp=i*3.14/40;
   mydc.LineTo(50+temp*XSCALE,350-sin(temp)*XSCALE);
  }
  
  mydc.MoveTo(50,350);
  for(i=0;i<20;i++)
  {
   temp=i*3.14/40;
   mydc.LineTo(50+temp*XSCALE,350-temp*XSCALE);
  }

  mydc.MoveTo(50,350);
  for(i=0;i<20;i++)
  {
   temp=i*3.14/40;
   mydc.LineTo(50+temp*XSCALE,350-(E_Exp(temp)-1)*XSCALE);
  }

  mydc.SelectObject(&pen1);
  // 1-cos x
  mydc.MoveTo(50,350);
  for(i=0;i<20;i++)
  {
   temp=i*3.14/40;
   mydc.LineTo(50+temp*XSCALE,350-(1-cos(temp))*XSCALE);
  }

  // squar(x)/2
  mydc.SelectObject(&pen2);
  mydc.MoveTo(50,350);
  for(i=0;i<20;i++)
  {
   temp=i*3.14/40;
   mydc.LineTo(50+temp*XSCALE,350-(temp*temp/2)*XSCALE);
  }
  
  CDialog::OnPaint();

 

 

VC++6.0使用TeeChart v5.0绘制实时温度曲线及曲线随时间滚动(超详细教程) 其中横坐标为实时的时间。纵坐标为传入的温度,可以是数据库传入的数据,也可以是程序中初始化定义的温度数据。在初始化时程序时TeeChart绘制的曲线上有100个点(我初始化的数据是100个),在程序开始运行后,新的数据点被不断传入,此时整个曲线会向左移动,前面的点会不断消失,曲线看起来在运动。最后再做几个按钮在曲线运动的过程中对曲线进行控制(还记得开局留的那两个按钮吗),即让曲线停止运动和继续运动按钮,最后再弄一个退出按钮,然后对界面进行布局就完成了。再次运行程序,此时惊喜的发现曲线可以进行动态的运动了。 阅读详情

相关推荐

VS 2012环境下使用MFC进行OpenGL编程

VS 2012下使用MFC+OpenGL基本步骤 引子:以前一直惧怕MFC感觉它是一个非常复杂的东西,更不用说去用它来和OpenGL结合了,以前是一直羡慕别人用MFC创建一个窗口进行OpenGL绘图,当初有萌生自己创建一个MFC使用OpenGL的想法,但是由于各种原因一直没成功,最近我又研究了一下,有了一下这些拙见。之前研究一些东西时候,当初明白了,后来再去用就又要重新学习,一直觉得自己差一个做

XjtrX的专栏 1万+

绘图控件第五讲——绘制动态曲线

在工控监测领域,经常需要动态绘制曲线,观察曲线的变化趋势,绘制波形图,绘制频谱等。在前面4讲中介绍了VC(MFC)经常用的TeeChart控件和Hight-Speed Chart Ctrl,这两个都是MFC绘图控件的经典(另外,在Qt中还有QwtPlot和QCustomPlot两大神器)。许多人问如何绘制动态变化的曲线,为此专门写下这篇文章。 C++ GUI 绘图控件目录

尘中远的程序开发记录 7万+

Qt OpenGL初探 - 画坐标轴

OpenGL使软件开发人员能够在CAD、内容创建、能源、娱乐、游戏开发、制造、医疗和虚拟现实等市场中创建高性能、视觉吸引力强的图形软件应用程序。`Qt OpenGL`模块可以很方便地将OpenGL应用在Qt程序中,本文使用其画了一个3D坐标轴,并详细讲解了具体的编码过程与官方手册的使用。

做减求空 3494

MFC 基于对话框应用绘制正弦曲线

MFC 基于对话框应用绘制正弦曲线

m0_72128260的博客 1091

MFC的对话框中使用OpenGL绘图

我们在编写软件是总是会有自己的界面,当然利用C++就不得不和MFC打交道了,那么可视化界面通常就要用MFC的Dialog;OpenGL通常画图时会自己生成一个窗口,就如同OpenCV一样,但现在我想OpenGL把图画在对话框指定的位置上,列如,我想在以下对话框的左侧部分显示我要画的图,该怎么做呢? 1、首先当然要设置好OpenGL的编程环境; 2、新建一个基于对话框的工程,我选择VS studio平台; 3、选着Project->add->class,添加一个新类,取名为...

大西瓜不甜的博客 1755

直接在MFC的对话框上利用OpenGL绘制图形

借鉴前人的经验,如链接http://www.cnblogs.com/phinecos/archive/2007/07/28/834916.html介绍了如何利用MFC的单文档来使用OpenGL(本文也是借鉴了这篇文章的代码),还有的是链接http://blog.youkuaiyun.com/wangsky2/article/details/17678171介绍了在MFC对话框中使用OpenGL,但是它是使用了

hurricanecqj的博客 5088

OpenGL: 画3条函数曲线

感谢大家支持,超级玛丽的下载次数超过9000了!我最近码OpenGL,这是一个例子。画了三个等价无穷小曲线。主要代码如下:#include "math01.h" #define XSTEP (3.14/40) #define XPOINT 0.02 #define POINTNUM 30 void DrawRect(GLfloat x, GLfloat y,GLfloat w, GLfl

Augusdi的专栏 3106

VC环境下基于MFC框架的OpenGL的编程环境的配置

VC环境下基于MFC框架的OpenGL的编程环境的配置   学习OpenGL时,一般都是在控制台环境下的窗口,这里简单介绍一下基于MFC框架的OpenGL的编程环境的配置,希望对你有所帮助。 在开始之前,首先确保你的VC已经包含了相应的OpenGL库文件,否则,将无法进行编译。若没有的话,可以从这里下载:http://butterflydog.download.youkuaiyun.com/ 然后解压

wDebug 的专栏 4529

向MFC嵌入OpenGL

本人上计算机图形学课时要做的大作业是基于MFC框架用OpenGL实现一些功能。但是我一开始并不知道怎么在MFC中加入OpenGL模块。于是我在网上找了半天终于找到一篇文章,阅读之后受益匪浅。今天我准备把这篇文章翻译出来。       原文地址:Setting Up OpenGL in an MFC Control       翻译如下:

HMTA的博客 3673

MFC openGL立方体

MFC OpenGl 立方体 // myGl.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include "pch.h" #include <Windows.h> #include "freeglut.h" #include "freeglut_ext.h" //#include "freeglut_internal.h" #include "...

luluwuwe的博客 1328

vs2017+MFC+opengl+nehe

  vs2017+MFC+opengl+nehe1 在vs2017中file-》new project,mfc的应用,设置为:   2  在stdafx.h中加入#include &lt;GL/glew.h&gt;#include &lt;GL/glut.h&gt;#include &lt;afxtempl.h&gt; #pragma comment (lib, "freeglut.lib")#p...

ljx1112233的博客 1796

基于MFC框架的OpenGL绘图:画直线

基于MFC框架的OpenGL绘图功能,使用glVertex函数结合DDA算法画直线

Frostleaf的博客 1489

MFC实现绘制曲线(附完整源码)

MFC实现绘制曲线(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1224

MFC之OpenGL入门程序

我在网上浏览过很多OpenGL的入门程序,不是控制台的就是Windows C编程的,觉得很不方便.所以在这里给大家一个OpenGL的MFC入门程序:) 注:windows下面的OpenGl编程的原理,我这里不讲了.请参考有关书籍:D 我知道,那些控制台程序和Windows C程序,创建的窗口是很简单的窗口. 这里先叙述一下创建步骤: 1.新建一个MFC向导程序,命名为GLFrame,单文档,去除打

糯米糊糊的专栏 7815

MFC下实现OpenGL动态画圆弧

本文介绍了如何使用OpenGL库在MFC应用程序中动态绘制圆弧。通过重写视图类的OnCreate和OnDraw函数来初始化OpenGL环境并绘制图形,可以实现复杂的图形效果。首先,创建一个基于MFC的空项目,设置为32位编译模式,手动添加OpenGL库和glu库的引用。在OnCreate函数中创建OpenGL渲染上下文并在OnDraw函数中绘制一个圆弧。在MFC框架下,使用OpenGL库可以轻松实现复杂的图形绘制和交互效果。本文将介绍如何使用OpenGL库在MFC应用程序中动态绘制圆弧。

uote_e的博客 370

Nacos漏洞利用工具V3.0.5实战:从认证绕开到内存马植入的全流程指南

本文详细解析了Nacos漏洞利用工具V3.0.5在实战中的应用,从认证绕开到内存马植入的全流程。文章深入探讨了如何利用Nacos的历史漏洞,如默认口令、认证逻辑绕过、Derby SQL注入及Jraft反序列化,实现权限提升与持久化控制,并提供了防御视角与加固建议,旨在帮助安全人员理解攻击链以加强防护。

h6j7k8l9p0的博客 483

基于MFC框架的OpenGL绘图:画直线(详解版)

文章目录前言一、前期准备1.成员变量2.鼠标响应事件二、正式画图1. 调用Display()函数2. 画网格3. 画线4. DDA算法总结 前言 这是上一篇文章的详解版本,容我和大家详细地分享一下画线思路 一、前期准备 1.成员变量 // 背景网格的间隔 const float GRIDGAP = 0.1f; // 记录起始点 CPoint startPoint; CPoint endPoint; // 判断绘图状态 bool isDrawing; // 保存画好的线 int

Frostleaf的博客 2939

手把手教你用WKT文件在Petrel中创建自定义坐标系统(附CGCS2000转换模板)

本文详细介绍了如何在Petrel软件中利用WKT文件创建自定义坐标系统,并重点提供了CGCS2000坐标系的完整转换模板与实战步骤。通过解析坐标系统的三大支柱(大地坐标系、投影坐标系、基准转换)和WKT文件结构,指导用户从零开始构建适用于本土化项目的坐标系统,确保地质建模与空间数据处理的精度与一致性。

gpt4scribbler的博客 277

OpenGL在MFC程序中的配置及使用

关于在MFC中使用OpenGL绘图,我在网上参考了许多教程,感觉很杂很乱,因此走了不少弯路。在此写下这篇教程,希望能帮助更多像我这样的新手。 注:你的电脑可不必事先配置好OpenGL环境 创建MFC程序 点击 确定,下一步,选择单文档,mfc标准,完成。 点击运行项目 项目中添加OpenGL环境 点击 搜索:nupengl 选择第二个包,点击安装 这时,你的项目中就包括OpenG...

沉默是零吗的博客 1万+

RC4加密算法详解

RC4(也称为 Rivest Cipher 4)是流密码的一种形式,流密码逐字节操作数据流。RC4 流密码是使用最广泛的流密码之一,它通过算法一次一个字节地加密消息,简单并且操作速度快。RC4是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权的用户才能享受该服务,使用 64 位或 128 位密钥大小。它通常用于安全套接层 (SSL)、传输层安全 (TLS) 等应用,也用于 IEEE 802.11 无线 LAN 标准。在存储大量的信息时,RC4展现出它的实用性,面对大量的数据,

weixin_43211186的博客 1万+

把 SAP Query 用到极致:ABAP Query 的核心概念、配置流程、权限与运输治理全解析

摘要:SAP Query 是一款面向业务用户的自助报表工具,可解决标准报表无法满足业务需求的问题。其核心由四大组件构成:Queries(报表定义)、InfoSets(数据视图)、User Groups(权限分组)和Translation(多语言支持)。通过SQ03、SQ02、SQ01事务码分步创建用户组、数据视图和查询,业务用户无需ABAP知识即可生成Basic List(明细)、Statistics(统计)和Ranked List(排名)三种报表形式。典型案例展示了如何为采购部门设计包含明细追溯和Top1

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 179

MFC 中配置OpenGL环境

MFC为编写Windows应用程序提供了极大的方便,程序员在编写Windows应用程序时,只需要几步就可以把一个程序的框架建立起来.该类极大的提高了编程者的开发效率,是个具有极大实用价值的工具. 下面我们编写MFC 的OpenGL 应用程序. 要搭建一个OpenGL基本框架,需要以下几步: (1)新建一个单文档工程“OpenGLMFC” (2)给工程添加三个库文件“GLAUX.

xiaoge132的专栏 6367

NXP(恩智浦)—TJA1043TK CAN收发器芯片详解

本文章主要讲解NXP(恩智浦)—TJA1043TK CAN收发器的相关知识。

零零刷的博客 2201
上一篇: 我是码客,P客,飘客,接客,代客,码客,乘客,普客
下一篇: OpenGL曲线绘制:线段
programking
博客等级 码龄23年 450粉丝 140原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值