OpenGL样板程序,会转动的正方形

一个OpenGL样板程序,环境为VS2010


// Test_OpenGL.cpp : 定义控制台应用程序的入口点。
///** 1、OpenGL工具函数库(GLU),GLU函数实用glu前缀** 2、窗口系统,以支持OpenGL渲染,对于X窗口系统是GLX函数,以glX开头,* 对于Windows而言是是WGL函数库,使用wgl前缀* 对于Mac OS系统而言AGL(前缀agl)、CGL(前缀cgl)和Cocoa(NSOpenGL类)** 3、OpenGL实用工具库(Open Utility Toolkit,GLUT),使用glut前缀**/#include "stdafx.h"
#include <Windows.h>
#include <GL/glut.h>static GLfloat spin = 0.0;
static GLfloat clr_array[]={1.0, 1.23, 0.20};void init()
{glClearColor(0.0, 0.0, 0.0, 0.0);glShadeModel(GL_FLAT);
}void display(void)
{glClear(GL_COLOR_BUFFER_BIT);glPushMatrix();glRotatef(spin,0.0, 0.0, 1.0);glColor3fv(clr_array);glRectf(-25.0f, -25.0f, 25.0f, 25.0f);  //画矩形glPopMatrix();glutSwapBuffers();}void spinDisplay()
{spin += 2.0;if(spin > 360.0f){spin = spin - 360.0f;}glutPostRedisplay();}void reshape(int w, int h)
{glViewport(0, 0, (GLsizei)w, (GLsizei)h);glMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);glMatrixMode(GL_MODELVIEW);
}void mouse(int button, int state, int x, int y)
{switch(button){case GLUT_LEFT_BUTTON:if (state == GLUT_DOWN){glutIdleFunc(spinDisplay);}break;case GLUT_RIGHT_BUTTON:if (state == GLUT_DOWN){glutIdleFunc(NULL);}break;default:break;}}
/***********************************************************************/
/* 第一个OpenGL程序, 动画=重绘+交换                                    */
/***********************************************************************/
int main(int argc, char* argv[])
{/*初始化*/glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);glutInitWindowPosition(100, 100);glutInitWindowSize(250, 250);glutCreateWindow(argv[0]);init();/*画图*/glutDisplayFunc(display);glutReshapeFunc(reshape);glutMouseFunc(mouse);glutMainLoop();return 0;
}




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop入门学习笔记——五、在虚拟机中部署Hive

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 五、在虚拟机中部署Hive5.1. 在node1虚拟机安装MySQL5.2.…

ECC的代码实现

ECC的代码实现 数据校验介绍:  通俗的说&#xff0c;就是为保证数据的完整性&#xff0c;用一种指定的算法对原始数据计算出的一个校验值。接收方用同样的算法计算一次校验值&#xff0c;如果和随数据提供的校验值一样&#xff0c;就说明数据是完整的。 如果是时序或者电路方…

FPGA图像处理的开发流程

FPGA图像处理的开发流程 1、需求分析及问题描述 问题描述应该清楚地描述问题而不是解决方法。它应该包括系统需要做什么、为什么要做,而不包括怎么做。 为了描述更具体,至少需要讨论三个方面。 第一是系统功能,也就是系统需要做什么。在一个图像处理应用中,需要详细说明图…

C/C++实现模糊控制,借助MATLAB辅助设计和fis.c文件

上一篇文章&#xff08;C /C语言实现模糊控制&#xff09;介绍了C/C中实现模糊控制该怎么做&#xff0c;开始提到的MATLAB模糊控制的C/C模糊控制接口fis.c库&#xff0c;不过这个文件有点老&#xff0c;在用VS2010编译的时候一大堆错误&#xff0c;在网上找关于C中使用 fis.c 的…

转载:Windows CE内存管理

内存管理如果你在写Windows CE 程序中遇到的最重要的问题&#xff0c;那一定是内存问题。一个WinCE 系统可能只有4MB 的RAM&#xff0c;这相对于个人电脑来说是十分少的&#xff0c;因为个人电脑的标准配置已经到了128MB 甚至更多。事实上&#xff0c;运行WinCE 的机器的内存十…

一些比较使用的技巧

一些比较使用的技巧 1、如何得到一个信号的上升沿 注意:时序逻辑有打一拍的特性,组合逻辑没有。 input vsync; reg vsync_r; reg vsync_r2; wire vsync_r2_n; wire vsync_rise;always@(posedge clk) beginvsync_r <= vsync;vsync_r2 <= vsync_r; endassign vsync_r2_…

2012年我读过的十本好书

1、《世上的光》是俄罗斯导演安德烈塔可夫斯基的拍立得摄影集。从中我们可以感受他在拍电影之余的个人生活&#xff0c;他的妻子&#xff0c;他的爱子以及梦幻般的乡村景色。而他配的文字更是让我们笃信他的确是个电影诗人。“影像&#xff0c;是真理的印记”“影像是谷粒&…

MFC界面编程新思路--模仿MATLAB式的界面

像下面的这个图片一样&#xff0c;做一个图像测量的软件&#xff0c;界面需要模仿MATLAB&#xff0c;以前老是新建一个对话框式的MFC应用程序&#xff0c;或者是一个SDI的应用程序&#xff0c;搞了一年&#xff0c;慢慢的也想到了一种新的思路&#xff0c;而且今天也做了一个De…

敏捷是如何使你跑得更快?

对于为何采用敏捷软件开发这个问题&#xff0c;企业经常提到的原因之一是希望能够更快地交付软件。研究表明敏捷项目能够进行地更快&#xff0c;例如《敏捷项目的成功证据》一文中描述的哥伦布市敏捷工作效率基准项目。\u0026#xD;\n在博文《谁说敏捷项目不能更快一些》中&#…

WinCE电源管理的简单介绍

电源管理的目的是节能,基本的节能方法是使系统适时的进出休眠状态.比如用户按下On/Off按钮,或者监视用户活动的定时器超时,或者应用呼叫api都可以使得系统休眠,用户再次按下On/Off或者其他唤醒中断将使得系统退出休眠.从而可见,电源管理模块和用户活动情况密不可分,电源管理是用…

算法映射技术

算法映射技术 将图像处理的算法转换为FPGA系统设计的过程为算法映射。 映射过程的首要目标便是确定系统设计的结构,在图像处理中常用的两种系统设计结构:流水线结构和并行阵列结构 1、流水线设计 (1)基本概念 流水线处理源自现代工业生产装配线上的流水作业,是指将待处理…

WS_EX_COMPOSITED是个BUG?

新建的SDI应用程序&#xff0c;在删除 文档视图结构以后&#xff0c;突然出现资源文件(*.rc)错误&#xff0c;说是WS_EX_COMPOSITED没有定义&#xff0c;只好删除了事&#xff0c;不知道怎么回事。

《北妹》:中国七零后作家的一次火山喷发(答记者问)

1&#xff0c;您是如何留意到盛可以及其创作的&#xff1f;是她在哪个方面的特质或者特点很突出呢&#xff1f; 答&#xff1a;我很早就知道盛可以&#xff0c;但是真正读她的作品是从《道德颂》开始的&#xff0c;当时我被她对人性尤其是男性的思考和揭示深深地震撼了。她对生…

windowsCE异常和中断服务程序初探

windowsCE异常和中断服务程序初探 ---------by nasiry 转载请说明出处 1。中断/异常相量的装入和执行方式。 中断和异常都是异步发生的事件&#xff0c;当该事件发生&#xff0c;系统将停止目前正在执行的代码转而执行事件响应的服务程序。而事件服务程序的入口点就…

ISERDES Guidelines

ISERDES Guidelines ISERDES模块的作用在于实现高速源同步输入数据的串并转换。 OSERDES模块的作用在于实现高速源同步输出数据的并串转换。 SERDES支持SDR和DDR两个模式。 SDR模式支持2、3、4、5、6、7、8bit位宽; DDR模式支持4、6、8bit位宽,10或14bit位宽需要两个模块级…

VC 2010的MFC函数,CMFCVisualManager::GetInstance()可能导致内存泄露

今天在网上看到一篇文章&#xff0c;关于CMFCVisualManager的内存泄露问题&#xff08; 链接是 http://zhanyonhu.blog.163.com/blog/static/1618604420113208121859/&#xff09;&#xff0c;当然还有其他的关于CMFCButton控件也有内存泄露问题&#xff0c;乱七八糟扯蛋&#…

SRX alarm: Autorecovery information needs to be saved

One of our srx system alarm light is on. Check system alarms and fond this:[email protected]> show system alarms node0:————————————————————————–1 alarms currently activeAlarm time Class Description2013-03-13 16:50…

简单深入两个虚拟内存API VirtualAlloc及VritualCopy

VirtualAlloc : (配置虛擬記憶體) [MSDN] http://msdn.microsoft.com/en-us/library/aa366887(VS.85).aspx LPVOID WINAPI VirtualAlloc (LPVOID lpAddress, //所要分配記憶體區域虛擬位址的起始位址DWORD dwSize, //要分配或者保留的區域的大小DWORD flAllocationType, //分…

对传统视觉惯性的颠覆

何汶玦[日常影像]艺术展昨天在798白盒子艺术馆开幕。评论界认为&#xff1a;何汶玦的作品是对电影影像的摆脱&#xff0c;回归日常影像。我的理解是&#xff0c;或许电影影像是被导演、演员和摄影既定的&#xff0c;没有了我们自己的观察和省略。所谓日常就是我们每个人目光所及…

映射之计算技术

映射之计算技术 1、算法转换 (1)、定常数转换 对于定常数,可以通过一定的转换将其转换为移位和加法运算,从而减少乘法器和除法器的使用。 考虑以下乘法运算的实现 dout = din x 255 转换后 dout = din x (256 - 1) = (din << 8) - din dout = din x 123 转换后 do…