VS2017 nuget安装 并且使用,以opengl为例

    刚刚配置glut的时候,踩了很多很多坑,不知道什么原因我按照网上的教程来配置glut,但是都是错误,有可能是因为vs2017版本的问题。

    后来查了很多博客,发现还能用NuGet来引入这些包,而且我看了别人都能成功。就很激动的去配置,后来发现并无nuan用。然后今天早上再次配置了一下,成功了!!虽然还没完全懂但是可以运行glut的示例了,怎么说都是一大突破了。有小伙伴科普的就评论,给我增长姿势(知识)。

    我们第一步打开vs2017,然后新建一个c++项目,但是这里很奇怪,我如果创建了控制台的项目,用nuget发现也会报个错误,我就又建了个空的c++项目,总算能够成功运行了。

控制台项目错误如下,欢迎大神科普


发现控制台项目不行我们就用空项目吧!

新建空c++项目

VS2017 nuget安装 并且使用,以opengl为例_第1张图片


然后进入项目,什么都没有,真的很纯洁!!

我们新建了一个cpp文件用来测试

VS2017 nuget安装 并且使用,以opengl为例_第2张图片

(这里很尴尬的是测试了一下,按照网上的vs2017 glut配置,用c++空项目也是可以用的)

假装没看到上边一句,我们继续用nuget来安装glut环境。

VS2017 nuget安装 并且使用,以opengl为例_第3张图片

VS2017 nuget安装 并且使用,以opengl为例_第4张图片

我们进行到这一步就看到需要引入的资源。

VS2017 nuget安装 并且使用,以opengl为例_第5张图片


安装后我们可以打开项目就会发现我们引入的包,这里就有了一个packages文件

VS2017 nuget安装 并且使用,以opengl为例_第6张图片

VS2017 nuget安装 并且使用,以opengl为例_第7张图片

VS2017 nuget安装 并且使用,以opengl为例_第8张图片

VS2017 nuget安装 并且使用,以opengl为例_第9张图片

我们就会发现我们的项目中多了很多glut的头文件

我们引入了就能用了

VS2017 nuget安装 并且使用,以opengl为例_第10张图片

这样就能画出来了

VS2017 nuget安装 并且使用,以opengl为例_第11张图片

下面给出测试的代码

//#include
#include
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++,VS2017)