openGL_3 - 副本.docx
文本预览下载声明
实验三几何变换和光照班级:姓名:学号:3.1 实验类型综合型实验3.2 实验目的与要求1)掌握几何变换中的平移,旋转和缩放变换2)理解并掌握光照的基本使用方法3.3实验内容和步骤 1)制作一个机器人,运用前面所学的知识。//机器人程序2#define GLUT_DISABLE_ATEXIT_HACK #include stdlib.h#include GL/glut.h#define TORSO_HEIGHT 5.0#define UPPER_ARM_HEIGHT 2.0#define LOWER_ARM_HEIGHT 2.0#define UPPER_LEG_RADIUS 0.5#define LOWER_LEG_RADIUS 0.5#define LOWER_LEG_HEIGHT 2.0#define UPPER_LEG_HEIGHT 2.0#define UPPER_LEG_RADIUS 0.5#define TORSO_RADIUS 1.0#define UPPER_ARM_RADIUS 0.5#define LOWER_ARM_RADIUS 0.5#define HEAD_HEIGHT 1.5#define HEAD_RADIUS 1.0typedef float point[2];static GLfloat theta[11] = {0.0,0.0,0.0,0.0,0.0,0.0,0.0, 180.0,0.0,180.0,0.0}; /* initial joint angles */static GLint angle = 2;GLUquadricObj *t, *h, *lua, *lla, *rua, *rla, *lll, *rll, *rul, *lul;double size=1.0;void torso(){ glPushMatrix(); glRotatef(-90.0, 1.0, 0.0, 0.0); gluCylinder(t,TORSO_RADIUS, TORSO_RADIUS, TORSO_HEIGHT,10,10); glPopMatrix();}void head(){ glPushMatrix(); glTranslatef(0.0, 0.5*HEAD_HEIGHT,0.0); glScalef(HEAD_RADIUS, HEAD_HEIGHT, HEAD_RADIUS); gluSphere(h,1.0,10,10); glPopMatrix();}void left_upper_arm(){ glPushMatrix(); glRotatef(-90.0, 1.0, 0.0, 0.0); gluCylinder(lua,UPPER_ARM_RADIUS, UPPER_ARM_RADIUS, UPPER_ARM_HEIGHT,10,10); glPopMatrix();}void left_lower_arm(){ glPushMatrix(); glRotatef(-90.0, 1.0, 0.0, 0.0); gluCylinder(lla,LOWER_ARM_RADIUS, LOWER_ARM_RADIUS, LOWER_ARM_HEIGHT,10,10); glPopMatrix();}void right_upper_arm(){ glPushMatrix(); glRotatef(-90.0, 1.0, 0.0, 0.0); gluCylinder(rua,UPPER_ARM_RADIUS, UPPER_ARM_RADIUS, UPPER_ARM_HEIGHT,10,10); glPopMatrix();}void right_lower_arm(){ glPushMatrix(); glRotatef(-90.0, 1.0, 0.0, 0.0); gluCylinder(rla,LOWER_ARM_RADIUS, LOWER_ARM_RADIUS, LOWER_ARM_HEIGHT,10,10); glPopMatrix();}void left_upper_leg(){ glPushMatrix(); glRotatef(-90.0, 1.0, 0.0, 0.0); gluCylinder(lul,UPPER_LEG_RADIUS, UPPER_LEG_RADIUS, UPPER_LEG_HEIGHT,10,10); glPopMatrix();}void left_lower_leg(){ glPushMatr
显示全部