使用VS2012 C++ 绘制中国国旗
2016-10-07 09:49
796 查看
国庆给祖国妈妈庆生,绘制一面五星红旗。
1、使用C++在VS2012平台下进行国旗的绘制;
2、利用OPENGL中glut库提供的图像绘制接口,需要下载glut库文件及进行相关配置,具体下载配置可以参考
点击打开链接
3、在新建工程中复制如下代码:
1、使用C++在VS2012平台下进行国旗的绘制;
2、利用OPENGL中glut库提供的图像绘制接口,需要下载glut库文件及进行相关配置,具体下载配置可以参考
点击打开链接
3、在新建工程中复制如下代码:
#include <GL/glut.h> #include <math.h> void init (void) { glClearColor(1.0,1.0,1.0,1.0); //窗口背景设置为白色 glMatrixMode(GL_PROJECTION); //设置投影参数 gluOrtho2D(0.0,200.0,0.0,150.0); } void TRIANGLE(float i,float j,int r) { float PI = 3.14; float ax,ay,bx,by,cx,cy,dx,dy,ex,ey; ax=0; ay=r; bx=r*cos(18*PI/180); by=r*sin(18*PI/180); ex=-bx; ey=by; cx=r*sin(36*PI/180); cy=-r*cos(36*PI/180); dx=-cx; dy=cy; glColor3f(1.0,1.0,0.0); glBegin(GL_TRIANGLES); glVertex2i(i,j); glVertex2i(i+ax,j+ay); glVertex2i(i+dx,j+dy); glEnd(); glBegin(GL_TRIANGLES); glVertex2i(i,j); glVertex2i(i+ax,j+ay); glVertex2i(i+cx,j+cy); glEnd(); glBegin(GL_TRIANGLES); glVertex2i(i,j); glVertex2i(i+bx,j+by); glVertex2i(i+ex,j+ey); glEnd(); glBegin(GL_TRIANGLES); glVertex2i(i,j); glVertex2i(i+bx,j+by); glVertex2i(i+dx,j+dy); glEnd(); glBegin(GL_TRIANGLES); glVertex2i(i,j); glVertex2i(i+cx,j+cy); glVertex2i(i+ex,j+ey); glEnd(); } void flagSegment(void) { glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glColor3f(1.0,0.0,0.0); //颜色为红色 glBegin(GL_QUADS); glVertex2i(13,140); glVertex2i(100,140); glVertex2i(100,80); glVertex2i(13,80); glEnd(); TRIANGLE(28,123,9); glTranslatef(40.0f,135.0f,0.0f); glPushMatrix(); glRotatef(-30.0f,0.0f,0.0f,1.0f); TRIANGLE(0,0,4); glPopMatrix(); glTranslatef(7.0f,-7.0f,0.0f); glPushMatrix(); glRotatef(30.0f,0.0f,0.0f,1.0f); TRIANGLE(0,0,4); glPopMatrix(); glTranslatef(0.0f,-10.0f,0.0f); TRIANGLE(0,0,4); glTranslatef(-7.0f,-6.0f,0.0f); glPushMatrix(); glRotatef(-30.0f,0.0f,0.0f,1.0f); TRIANGLE(0,0,4); glPopMatrix(); glFlush(); //渲染 } int main (int argc,char** argv) { glutInit(&argc,argv); //初始化GLUT glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //设置显示模式 glutInitWindowPosition(100,100); //设置显示窗口的左上角位置 glutInitWindowSize(800,600); //设置窗口的长和高 glutCreateWindow("An Example OpenGL Program" ); //创造显示窗口 init(); //开始初始化过程 glutDisplayFunc(flagSegment); //发送图形到显示窗口 //glutReshapeFunc(reshape); glutMainLoop(); //显示所有并等候 return 0; }
相关文章推荐
- 使用C++画中国国旗
- 使用C++绘制不规则的窗体
- 用VS2012做MFC ActiveX控件并使用html、c#、c++测试容器
- 在C++中使用GDI+绘制带箭头的线,箭头大小可调
- 使用VS2012内建的C++测试架构进行单元测试
- 中国历史上使用过的国旗
- Tuxedo 8.1 XML C++ Parser的使用(转自BEA中国网站)
- c++内存泄漏检测 vld使用教程 vs2012 vs2010内存检测
- [C/C++]_[VS2010使用源代码UTF8中国字符串转码ANSI问题]
- C#绘制中国国旗的方法
- c和c++如何使用vs2012生成DLL文件
- 用VS2012做MFC ActiveX控件并使用html、c#、c++测试容器
- Javascript实战开发:教你使用raphael.js绘制中国地图
- VS2012下创建和使用DLL (C++)
- 使用Qt开发中国象棋(二):棋盘绘制
- 如何使用SOIL在VS2012的 C++环境下显示图片
- 使用matlab和GMT联合绘制带有省界的中国地图
- 使用VS2012 C++ 进行单元测试
- 使用VS2012的C++生成dll
- 【C++ OpenGL ES 2.0编程笔记】8: 使用VBO和IBO绘制立方体