Member 13950316
#включать
#включать
#определение BASE_HEIGHT 4.0/2
#определение BASE_RADIUS 1.0/2
#определить HEAD_HEIGHT 1.25/2
#define HEAD_RADIUS 0.75/2
#определение высоты шеи 0.5/2
#определение EYE_LEVEL 0.75/2
#define NOSE_LENGTH 0.5/2
#определение LOWER_ARM_HEIGHT 2.0/2
#определить LOWER_ARM_WIDTH 0.5/2
#define UPPER_ARM_HEIGHT 1.25/2
#определить UPPER_ARM_WIDTH 0.5/2
#define ARM_TRANSLATION 0.22/2
#определить Альфа 0.0
#определите pi 3.14159265
статический GLfloat theta[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
статическая ось блеска = 0;
GLUquadricObj *p;
GLfloat x = 0.0;
GLfloat y = 0.0;
GLfloat xpos = 0.0;
GLfloat ypos = 0.0;
GLfloat zpos = 0.0;
GLfloat ambient[3];
GLfloat диффузный[3];
GLfloat зеркальный[3];
GLfloat shiness[] = {50.0 f};
ширина поплавка = 500;
высота поплавка = 500;
база недействительным(ничтожным);
пустота головы(пустота);
пустота шеи(ничтожным);
upper_rarm недействительным(ничтожным);
upper_larm недействительным(ничтожным);
lower_rarm недействительным(ничтожным);
lower_larm недействительным(ничтожным);
недействительными инициализации(ничтожным);
недействительным дисплей(ничтожным);
void reshape (int width, int height);
пустота клавиатуры(без знака типа char, и int, инт);
void processSpecialKeys(int, int, int);
void jump (пустота);
lsphere недействительным (ничтожным);
init1 недействительным (ничтожным);
база недействительным (ничтожным) {
двойной угол, angleInc;
int i;
угол = pi / 180;
angleInc = угол;
glPushMatrix();
окружающий[0] = 1,0; окружающий[1] = 0,0; окружающий[2] = 0,0;
диффузный[0] = 1,0; диффузный[1] = 0,0; диффузный[2] = 0,0;
зеркальный[0] = 0,7; зеркальный[1] = 0,6; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
glRotatef (-90.0, 1.0, 0.0, 0.0);
gluQuadricDrawStyle(p, GLU_FILL);
gluCylinder (п BASE_RADIUS, BASE_RADIUS, BASE_HEIGHT, 20, 20);
glPopMatrix();
glPushMatrix();
gluQuadricDrawStyle (p, GLU_FILL);
glTranslatef (0.0, BASE_HEIGHT, 0.0);
glRotatef (-90.0, 1.0, 0.0, 0.0);
gluDisk (p, 0.0, BASE_RADIUS, 20, 20);
glTranslatef (0.0, 0.0, -BASE_HEIGHT);
gluDisk (p, 0.0, BASE_RADIUS, 20, 20);
glPopMatrix();
}
пустота шеи (ничтожным) {
glPushMatrix();
окружающий[0] = 1,0; окружающий[1] = 1,0; окружающий[2] = 0,0;
диффузный[0] = 1,0; диффузный[1] = 1,0; диффузный[2] = 0,0;
зеркальный[0] = 0,7; зеркальный[1] = 0,6; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
glTranslatef(0.0, BASE_HEIGHT, 0.0);
glRotatef (-90.0, 1.0, 0.0, 0.0);
gluQuadricDrawStyle(p, GLU_FILL);
gluCylinder (п HEAD_RADIUS/2, HEAD_RADIUS/2, HEAD_HEIGHT, 8, 6);
glPopMatrix();
}
пустота головы (пустота) {
glPushMatrix();
окружающий[0] = 1,0; окружающий[1] = 0,0; окружающий[2] = 1,0;
диффузный[0] = 1,0; диффузный[1] = 0,0; диффузный[2] = 1,0;
зеркальный[0] = 0,7; зеркальный[1] = 0,6; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
glRotatef (-90.0, 1.0, 0.0, 0.0);
gluQuadricDrawStyle(p, GLU_FILL);
gluCylinder (п HEAD_RADIUS, HEAD_RADIUS, HEAD_HEIGHT, 20, 20);
glPushMatrix();
gluDisk (p, 0.0, HEAD_RADIUS, 20, 20);
glTranslatef (0.0, 0.0, HEAD_HEIGHT);
gluDisk (p, 0.0, HEAD_RADIUS, 20, 20);
glPopMatrix();
glPushMatrix();
glTranslatef (0.25, -HEAD_RADIUS+0.12, EYE_LEVEL);
ambient[0] = 1.0; ambient[1] = 1.0; ambient[2] = 1.0;
диффузный[0] = 1,0; диффузный[1] = 1,0; диффузный[2] = 1,0;
зеркальный[0] = 0,5; зеркальный[1] = 0,5; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
gluQuadricDrawStyle(p, GLU_FILL);
gluSphere (п 0.125, 6, 6);
glPopMatrix();
glPushMatrix();
glTranslatef (-0.25, -HEAD_RADIUS+0.12, EYE_LEVEL);
ambient[0] = 1.0; ambient[1] = 1.0; ambient[2] = 1.0;
диффузный[0] = 1,0; диффузный[1] = 1,0; диффузный[2] = 1,0;
зеркальный[0] = 0,5; зеркальный[1] = 0,5; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
gluQuadricDrawStyle(p, GLU_FILL);
gluSphere (п 0.125, 6, 6);
glPopMatrix();
glPushMatrix();
окружающий[0] = 1,0; окружающий[1] = 0,5; окружающий[2] = 0,0;
диффузный[0] = 1,0; диффузный[1] = 0,5; диффузный[2] = 0,0;
зеркальный[0] = 0,5; зеркальный[1] = 0,5; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
glTranslatef(0.0, -HEAD_RADIUS, NOSE_LENGTH);
glRotatef(90.0, 1.0, 0.0, 0.0);
gluQuadricDrawStyle(p, GLU_FILL);
gluCylinder(п 0.125, 0, NOSE_LENGTH, 8,6);
glPopMatrix();
glPopMatrix();
}
lower_rarm недействительным(ничтожным) {
glPushMatrix();
окружающий[0] = 0.0; окружающий[1] = 1.0; окружающий[2] = 0.0;
диффузный[0] = 0.0; диффузный[1] = 1.0; диффузный[2] = 0.0;
зеркальный[0] = 0,7; зеркальный[1] = 0,6; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
glTranslatef(0.0, 0.5 * LOWER_ARM_HEIGHT, ARM_TRANSLATION);
glScalef(LOWER_ARM_WIDTH, LOWER_ARM_HEIGHT, LOWER_ARM_WIDTH);
glutSolidCube(1.0);
glPopMatrix();
}
lower_larm недействительным(ничтожным) {
glPushMatrix();
окружающий[0] = 0.0; окружающий[1] = 1.0; окружающий[2] = 0.0;
диффузный[0] = 0.0; диффузный[1] = 1.0; диффузный[2] = 0.0;
зеркальный[0] = 0,7; зеркальный[1] = 0,6; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
glTranslatef(0.0, 0.5 * LOWER_ARM_HEIGHT, -ARM_TRANSLATION);
glScalef(LOWER_ARM_WIDTH, LOWER_ARM_HEIGHT, LOWER_ARM_WIDTH);
glutSolidCube(1.0);
glPopMatrix();
}
upper_rarm недействительным(ничтожным) {
glPushMatrix();
окружающий[0] = 0.0; окружающий[1] = 0.0; окружающий[2] = 1.0;
диффузный[0] = 0.0; диффузный[1] = 0.0; диффузный[2] = 1.0;
зеркальный[0] = 0,7; зеркальный[1] = 0,6; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
glTranslatef(0.0, 0.5 * UPPER_ARM_HEIGHT, ARM_TRANSLATION);
glScalef(UPPER_ARM_WIDTH, UPPER_ARM_HEIGHT, UPPER_ARM_WIDTH);
glutSolidCube(1.0);
glPopMatrix();
}
upper_larm недействительным(ничтожным) {
glPushMatrix();
окружающий[0] = 0.0; окружающий[1] = 0.0; окружающий[2] = 1.0;
диффузный[0] = 0.0; диффузный[1] = 0.0; диффузный[2] = 1.0;
зеркальный[0] = 0,7; зеркальный[1] = 0,6; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
glTranslatef(0.0, 0.5 * UPPER_ARM_HEIGHT, -ARM_TRANSLATION);
glScalef(UPPER_ARM_WIDTH, UPPER_ARM_HEIGHT, UPPER_ARM_WIDTH);
glutSolidCube(1.0);
glPopMatrix();
}
init1 недействительным(ничтожным){
GLfloat mat_specular[] = {1.0, 1.0, 1.0, 1.0};
GLfloat mat_shininess[] = {50.0};
GLfloat light_position[] = {1.0, 1.0, 1.0, 1.0};
GLfloat white_light[] = {0.3, 0.3, 0.3, 1.0};
GLfloat lmodel_ambient[] = {1.0, 1.0, 0.0, 1.0};
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_SMOOTH);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_DIFFUSE, white_light);
glLightfv(GL_LIGHT0, GL_SPECULAR, white_light);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
}
lsphere недействительным(ничтожным){
glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT);
glutSolidSphere(1.0, 20, 16);
glFlush();
}
недействительным дисплей(ничтожным) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
глулукат(0.3, 5.3, 12.0, 0.0, 1.25, 0.0, 0.0, 1.0, 0.0);
glPushMatrix();
окружающий[0] = 1,0; окружающий[1] = 0,3; окружающий[2] = 0,3;
диффузный[0] = 1,0; диффузный[1] = 1,0; диффузный[2] = 1,0;
зеркальный[0] = 0,7; зеркальный[1] = 0,6; зеркальный[2] = 0,5;
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, зеркальный);
glMaterialfv(GL_FRONT, GL_SHININESS, shiness);
<