山东大学计算机图形学试题,山东大学计算机图形学2010试卷A(含答案).doc

该程序展示了使用OpenGL进行3D图形渲染的基本步骤,创建了一个窗口并绘制了一个机器人臂的简单模型。屏幕输出为一个静态的3D场景,包括基座、下臂和上臂,上臂的末端可以覆盖一个半径为1的球体。通过调整theta数组的值,上臂的旋转角度变化,可以覆盖到不同的空间区域。涉及到的关键技术包括矩阵变换、颜色管理、深度测试和三维几何体绘制。
摘要由CSDN通过智能技术生成

山东大学计算机图形学2010试卷A(含答案)

山东大学 计算机图形学 课程试卷 A

学院 专业 级 学号 姓名

void main(int argc, char **argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);

glutInitWindowSize(500, 500);

glutCreateWindow("robot");

glEnable(GL_DEPTH_TEST);

glClearColor(1.0, 1.0, 1.0, 1.0);

glutDisplayFunc(display);

glutMainLoop();

}

What is the screen output of this program? Please illustrate with a picture.

If we can vary the values in the theta array freely, what spatial region can be reached by the tip of the upper arm?

一个中心点在 (0.0, 0.2, 0.0),半径为1的球体

Write out the affine transformation matrix applied to each of Cube-A, Cube-B, and Cube-C.

对于Cube-A:Ry(0)*T(0,0.1,0)*S(0.2,0.2,0.2)

计算得为

0.2 0 0 0

0 0.2 0 0.1

0 0 0 2

0 0 0 1.0

void lower_arm()

{

glPushMatrix();

glTranslatef(0.0, 0.5*LOWER_ARM_HEIGHT, 0.0);

glScalef(LOWER_ARM_WIDTH,LOWER_ARM_HEIGHT,LOWER_ARM_WIDTH);

glutSolidCube(1.0);// Cube-C

glPopMatrix();

}

void display(void)

{

GLfloat theta[] = {0.0, 45.0, 45.0};

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

glColor3f(1.0, 0.0, 0.0);

glRotatef(theta[0], 0.0, 1.0, 0.0);

base();

glColor3f(0.0, 1.0, 0.0);

glTranslatef(0.0, BASE_HEIGHT, 0.0);

glRotatef(theta[1], 0.0, 0.0, 1.0);

lower_arm();

glColor3f(0.0, 0.0, 1.0);

glTranslatef(0.0, LOWER_ARM_HEIGHT, 0.0);

glRotatef(theta[2], 0.0, 0.0, 1.0);

upper_arm();

glFlush();

glutSwapBuffers();

}

第 页 共 页

09-10 学年 2 学期

glBegin (GL_TRIANGLE_STRIP)

glVertex3fv(a);

glVertex3fv(b);

glVertex3fv(c);

glVertex3fv(d);

glVertex3fv(e);

glVertex3fv(b);

glVertex3fv(f);

glEnd ( );

第 2 页 共 4 页

山东大学 计算机图形学 课程试卷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值