计算机图形学 第四版 第三章复习及答案

第三章复习及其习题

复习

第三章中提供了一个简单的opengl程序

#include<GL/glut.h>
#include<cstdio>
void init(void) {
	glClearColor(1.0, 1.0, 1.0, 0.0);  //设置窗口背景
	glMatrixMode(GL_PROJECTION);
	gluOrtho2D(0.0, 200.0, 0.0, 150.0);  //投影范围,x上0-200,y上0-150

}

void lineSegment(void) {             //设置一条直线
	glClear(GL_COLOR_BUFFER_BIT);

	glColor3f(0.0, 0.4, 0.2);
	glBegin(GL_LINES);
		glVertex2i(180, 15);         //设置两个点成线
		glVertex2i(10, 145);
	glEnd();

	glFlush();
}

GLenum errorCheck() {       //debug
	GLenum code;
	const GLubyte *string;
	code = glGetError();
	if (code != GL_NO_ERROR) {
		string = gluErrorString(code);
		fprintf(stderr, "OpenGL error:%s\n", string);
	}
	return code;
}

int main(int argc, char* argv[]) {
	glutInit(&argc, argv);            //使用opengl必备
	glutCreateWindow("I an Windows"); //设置窗口标题
	init();                           
	errorCheck();
	glutDisplayFunc(lineSegment);     
	glutMainLoop();

}

上面函数我简单的注释了下,此外还有glutInitWindowsPosition()可以设置窗口位置。

重点一提的式OpenGL的出错处理

OpenGL发现错误时,会在内部记录一个出错代码,但在查明这次出错之前不会记录其他的出错代码,也就是说一次只能查一个错。

OpenGL基本库同时也记录的一些出错代码,不过我感觉基本google就行

习题

ps:虽然没有在网上找到标准答案,不过会在vs上实际跑一次,应该还是ojbk的
在这里插入图片描述
3.1

glClearColor()

3.2

glutInitWindowsPostion(75,50);
glutInitWindowSize(200,150);

3.3

glutInitWindowSize(150,250);
gluOrtho2D(0.0, 150.0, 0.0, 250.0);
glBegin(GL_LINES);
	glVertex2i(150,200);
	glVertex2i(0,0);
glEnd();

3.4

OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库。

详细的可以看gl,glu,glut区别

3.5

这个函数告诉GLUT当窗口内容必须被绘制时,那个函数将被调用.当窗口改变大小或者从被覆盖的状态中恢复,或者由于调用glutPostRedisplay()函数要求GLUT更新时,执行func参数指定的函数.

3.6

各种不同坐标系区别

3.7

为了使观察处理独立于输出设备,我们可以将对象描述转换到一个中间坐标系,这个坐标系既独立于设备,又可以容易地转变成设备坐标系。通常将这个中间坐标系称为规范化设备坐标系,其坐标范围为 [0,1],这样可以使二维观察结果独立于可能使用的各种输出与显示设备,提高应用程序的可移植性与设备无关性。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值