刚刚配置glut的时候,踩了很多很多坑,不知道什么原因我按照网上的教程来配置glut,但是都是错误,有可能是因为vs2017版本的问题。
后来查了很多博客,发现还能用NuGet来引入这些包,而且我看了别人都能成功。就很激动的去配置,后来发现并无nuan用。然后今天早上再次配置了一下,成功了!!虽然还没完全懂但是可以运行glut的示例了,怎么说都是一大突破了。有小伙伴科普的就评论,给我增长姿势(知识)。
我们第一步打开vs2017,然后新建一个c++项目,但是这里很奇怪,我如果创建了控制台的项目,用nuget发现也会报个错误,我就又建了个空的c++项目,总算能够成功运行了。
控制台项目错误如下,欢迎大神科普
发现控制台项目不行我们就用空项目吧!
新建空c++项目
然后进入项目,什么都没有,真的很纯洁!!
我们新建了一个cpp文件用来测试
(这里很尴尬的是测试了一下,按照网上的vs2017 glut配置,用c++空项目也是可以用的)
假装没看到上边一句,我们继续用nuget来安装glut环境。
我们进行到这一步就看到需要引入的资源。
安装后我们可以打开项目就会发现我们引入的包,这里就有了一个packages文件
我们就会发现我们的项目中多了很多glut的头文件
我们引入了就能用了
这样就能画出来了
下面给出测试的代码
//#include<GL\freeglut.h>
#include<GL\glut.h>
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);
}