简介本文向大家介绍一个C++实战项目:C++基于OpenGL绘制三角形,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <cstdlib>
#include <cstdio>
#include <cmath>
void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);//设置背景颜色为黑色
glShadeModel(GL_SMOOTH);//设置为光滑明暗模式
}
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);// 将缓存清除为预先的设置值,即黑色
//glTranslatef(0.8, 0.0, 0.0);//平移函数,暂时可以不用
glBegin(GL_TRIANGLES);//开始画三角形
glColor3f(1.0, 0.0, 0.0);//设置第一个顶点为红色
glVertex2f(-1.0, -1.0);//设置第一个顶点的坐标
glColor3f(0.0, 1.0, 0.0);//设置第二个顶点为绿色
glVertex2f(0.0, -1.0);//设置第二个顶点的坐标
glColor3f(0.0, 0.0, 1.0);//设置第三个顶点为蓝色
glVertex2f(-0.5, 1.0);//设置第三个顶点的坐标
glEnd();//三角形结束
glFlush();//强制OpenGL函数在有限时间内运行
}
void myReshape(GLsizei w, GLsizei h)
{
glViewport(0, 0, w, h);//设置视口
glMatrixMode(GL_PROJECTION);//指明当前矩阵为GL_PROJECTION
glLoadIdentity();//将当前矩阵置换为单位阵
if (w <= h)
gluOrtho2D(-1.0, 1.5, -1.5, 1.5*(GLfloat)h / (GLfloat)w);//定义二维正视投影矩阵
else
gluOrtho2D(-1.0, 1.5*(GLfloat)w / (GLfloat)h, -1.5, 1.5);
glMatrixMode(GL_MODELVIEW);//指明当前矩阵为GL_MODELVIEW
}
int main(int argc, char ** argv)
{
/*初始化*/
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//单缓冲、RGB模式
glutInitWindowSize(400, 400);
glutInitWindowPosition(200, 200);
glutCreateWindow("三角形");//窗口标题
init();
/*绘制与显示*/
glutReshapeFunc(myReshape);//窗口大小发生改变时采取的行为
glutDisplayFunc(myDisplay);//显示绘制图形
glutMainLoop();//循环
return(0);
}
运行截图:
本文介绍一个C++代码实战例子:C++实现图片等比例缩放,感兴趣的朋友可以参考一下。
本文向大家介绍OpenGL绘制文字(支持中文),感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:Duilib实现截图截取功能并保存为jpg图片,主要涉及Duilib界面开发、截取屏幕到位图、位图保存到文件、bmp格式图片转jpg等知识,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:在Duilib窗口中使用OpenGL绘制图形示例,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:C++基于OpenGL绘制一个随鼠标旋转长方体,并支持鼠标滚轮缩小放大,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
本文向大家介绍OpenGL一个函数实现抗锯齿,感兴趣的朋友可以参考一下。