ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenGL自学日志1 - 启航

2021-04-10 23:31:08  阅读:196  来源: 互联网

标签:启航 OpenGL int 0.0 void wr 日志 屏幕


OpenGL启航

OpenGL的HellowWorld

记录OpenGL的自学过程,以日志促学习,文章中肯定有许多错误,请大家不吝指教。

环境搭建

  1. 安装VS2019;
  2. 工具>NuGet包管理器>管理解决方案的NuGet程序包;
  3. 搜索nupengl.core;
  4. 勾选右侧窗口中的所有选项,然后点击下边的 安装按钮。

创建项目

  1. 新建>项目,打开的窗口中依次下拉选中C++,Windows,控制台
  2. 双击新项目创建项目;

源码展示

//GLUT(OpenGL Utility Toolkit) OpenGL实用函数工具包wr;
//提供了与屏幕窗口进行交互的函数库。
#include <gl/glut.h>

void Init(void)
{

	//设置控制台窗口的标题wr
	glutCreateWindow("OpenGL");

	//设置控制台的宽高,宽400px,高300px。
	glutInitWindowSize(400, 300);
	//设置控制台相对于屏幕左上角的初始化位置;
	//如下:控制台左上角距离屏幕左上角的距离为距左100px,距上120px。
	glutInitWindowPosition(100, 120);
	//设置显示窗口的缓存和颜色模型;
	//设置为单个缓存并且RGB颜色模型;
	//使用逻辑或将这两个参数合并传递给函数。
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

	//清理屏幕,将屏幕设置为黑色,全透明
	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
	//指定投影模式
	glMatrixMode(GL_PROJECTION);
	//指定显示区域为(左下角)0 0 到(右上角)200 200;
	//超出区域将不显示
	gluOrtho2D(0.0, 200.0, 0.0, 200.0);
}

void DrawPoint(void)
{
	//定义三个点
	//以矩阵模式描述点;
	//注意第三个点超出显示范围
	int point1[] = { 10,10, 0 };
	int point2[] = { 100,100, 0 };
	int point3[] = { 250,250, 0 };

	//设定画笔颜色为白色
	glColor3f(1.0f, 1.0f, 1.0f);

	//开始绘制;
	//绘制点
	glBegin(GL_POINTS);
	//glVertex*函数wr可以加不同的后缀
	//glVertex 绘制角点 
	//3 使用三维坐标形式
	//i 使用整数
	//v 使用向量形式的点
		glVertex3iv(point1);
		glVertex3iv(point2);
		glVertex3iv(point3);
	glEnd();
}

void Display(void)
{
	//真正的清理屏幕wr;
	//使用glClearColor中指定的颜色和透明度来清理屏幕;
	//参数为颜色刷新缓存中的位值。
	glClear(GL_COLOR_BUFFER_BIT);

	//开始画点
	DrawPoint();

	//强制执行系统缓存中的内容;
	//清空缓存。
	glFlush();
}

int main(int argc, char* argv[])
{
	//GLUT初始化
	glutInit(&argc, argv);
	 
	//wr初始化OpenGL
	Init();

	//将绘制函数Display传递给系统函数glutDisplayFunc
	glutDisplayFunc(Display);

	//wr显示初始化图形,并开始检查鼠标键盘设备的输入;
	//开启无限循环模式。
	glutMainLoop();

	return 0;
}

运行结果

运行结果

标签:启航,OpenGL,int,0.0,void,wr,日志,屏幕
来源: https://blog.csdn.net/toumingqsp/article/details/115584929

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有