Пример #1
0
void drawbox(t_box box)
{
	//char num[3] = {'0', '1', '2'};
	switch (box.status)
	{
	case BOX_FALLS:
		glPushMatrix();
		glColor3f(1.0, 0.0, 0.0);
		glTranslatef(START_X + box.x*SX + HSX, START_Y + box.y*SY + HSY, 0);
		glRotatef(20, -1,-1,0);
		auxSolidCube(0.8);
	/*	glDisable(GL_COLOR_MATERIAL);
		glBegin(GL_POLYGON);
		glNormal3f(0, 0, 1);
		glVertex3f(box.x, box.y + SY, 0.2);
		glVertex3f(box.x + SX, box.y + SY, 0.2);
		glVertex3f(box.x + SX, box.y, 0.2);
		glColor3f(1.0, 1.0, 1.0);
		glVertex3f(box.x, box.y, 0.2);
		glEnd();
		glEnable(GL_COLOR_MATERIAL);*/
	//	glColor3f(1.0, 1.0, 1.0);
	//	textout(	START_X + box.x*SX, START_Y + box.y*SY, 1, &num[pole[box.x][box.y]] );
		glPopMatrix();
		break;
	case BOX_LIES:
		glPushMatrix();
		glColor3f(0.5, 0.0, 0.0);
		glTranslatef(START_X + box.x*SX + HSX, START_Y + box.y*SY + HSY, 0);
		glRotatef(20, -1,-1,0);
		auxSolidCube(0.8);
	/*	glDisable(GL_COLOR_MATERIAL);
		glBegin(GL_POLYGON);
		glNormal3f(0, 0, 1);
		glVertex3f(box.x, box.y + SY, 0.2);
		glVertex3f(box.x + SX, box.y + SY, 0.2);
		glVertex3f(box.x + SX, box.y, 0.2);
		glColor3f(1.0, 1.0, 1.0);
		glVertex3f(box.x, box.y, 0.2);
		glEnd();
		glEnable(GL_COLOR_MATERIAL);*/
	//	glColor3f(1.0, 1.0, 1.0);
	//	textout(	START_X + box.x*SX, START_Y + box.y*SY, 1, &num[pole[box.x][box.y]] );
		glPopMatrix();
		break;
	}

}
Пример #2
0
void CALLBACK Paint(void)
{
	GLfloat torus_diffuse[]={0.7,0.7,0.0,1.0};
	GLfloat cube_diffuse[]={0.0,0.7,0.7,1.0};
	GLfloat sphere_diffuse[]={0.7,0.0,0.7,1.0};
	GLfloat octa_diffuse[]={0.7,0.4,0.4,1.0};

	glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

	glShadeModel(GL_SMOOTH);
	glPushMatrix();
	glRotatef(3.0,1.0,0.0,0.0);
	glPushMatrix();
	glTranslatef(-0.80,0.35,0.0);
	glRotatef(100.0,1.0,0.0,0.0);
	glMaterialfv(GL_FRONT,GL_DIFFUSE,torus_diffuse);
	auxSolidTorus(0.275,0.85);
	glPopMatrix();

	glPushMatrix();
	glTranslatef(-0.75,-0.50,0.0);
	glRotatef(45.0,0.0,0.0,1.0);
	glRotatef(45.0,1.0,0.0,0.0);
	glMaterialfv(GL_FRONT,GL_DIFFUSE,cube_diffuse);
	auxSolidCube(1.5);
	glPopMatrix();

	glPushMatrix();
	glTranslatef(0.75,0.60,0.0);
	glRotatef(30.0,1.0,0.0,0.0);
	glMaterialfv(GL_FRONT,GL_DIFFUSE,sphere_diffuse);
	auxSolidSphere(1.0);
	glPopMatrix();

	glPushMatrix();
	glTranslatef(0.70,-0.90,0.25);
	glMaterialfv(GL_FRONT,GL_DIFFUSE,octa_diffuse);
	auxSolidOctahedron(1.0);
	glPopMatrix();

	auxCreateFont();
	auxDrawStr("OpenGL Auxillary Library");

	glPopMatrix();

	glFlush();
}
Пример #3
0
void displayObjects(void) 
{
    GLfloat torus_diffuse[] = { 0.7, 0.7, 0.0, 1.0 };
    GLfloat cube_diffuse[] = { 0.0, 0.7, 0.7, 1.0 };
    GLfloat sphere_diffuse[] = { 0.7, 0.0, 0.7, 1.0 };
    GLfloat octa_diffuse[] = { 0.7, 0.4, 0.4, 1.0 };
    
    glPushMatrix ();
    glTranslatef (0.0, 0.0, -5.0); 
    glRotatef (30.0, 1.0, 0.0, 0.0);

    glPushMatrix ();
    glTranslatef (-0.80, 0.35, 0.0); 
    glRotatef (100.0, 1.0, 0.0, 0.0);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, torus_diffuse);
    auxSolidTorus (0.275, 0.85);
    glPopMatrix ();

    glPushMatrix ();
    glTranslatef (-0.75, -0.50, 0.0); 
    glRotatef (45.0, 0.0, 0.0, 1.0);
    glRotatef (45.0, 1.0, 0.0, 0.0);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, cube_diffuse);
    auxSolidCube (1.5);
    glPopMatrix ();

    glPushMatrix ();
    glTranslatef (0.75, 0.60, 0.0); 
    glRotatef (30.0, 1.0, 0.0, 0.0);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, sphere_diffuse);
    auxSolidSphere (1.0);
    glPopMatrix ();

    glPushMatrix ();
    glTranslatef (0.70, -0.90, 0.25); 
    glMaterialfv(GL_FRONT, GL_DIFFUSE, octa_diffuse);
    auxSolidOctahedron (1.0);
    glPopMatrix ();

    glPopMatrix ();
}
Пример #4
0
//创建显示列表********************************************************
void Cab_mfcView::JIQIREN()
{	//躯干
	::glNewList(1,GL_COMPILE_AND_EXECUTE);
	glColor3f(.0,0.0,1.0);
	auxSolidBox(6,8.5,5);
	::glEndList();

	//胳膊
	::glNewList(2,GL_COMPILE_AND_EXECUTE);
	glColor3f(0.0,1.0,1.0);
	auxSolidBox(8,2,1);
	//auxSolidSphere(1.6);
	::glEndList();

	//头和脖子
	::glNewList(3,GL_COMPILE_AND_EXECUTE);
	glColor3f(1.0,1.0,0.0);
	auxSolidCube((GLdouble) 3);
	auxSolidBox((GLdouble) 1,(GLdouble) 0,(GLdouble) 1) ;//脖子
	::glEndList();

	//腿
	::glNewList(4,GL_COMPILE_AND_EXECUTE);
	glColor3f(0.0,1.0,.0);
	auxSolidBox((GLdouble) 2,(GLdouble) 6,(GLdouble) 3) ;
	::glEndList();

	//眼
	::glNewList(5,GL_COMPILE_AND_EXECUTE);
	glColor3f(1.0,.0,.0);
	auxSolidSphere(0.6);
	::glEndList();

	//嘴
	::glNewList(6,GL_COMPILE_AND_EXECUTE);
	glColor3f(1.0,0.0,1.0);
	auxSolidBox(1.5,0.6,0.2);
	::glEndList();

}
Пример #5
0
CEE3DINPROC_API void _stdcall CeE3DSolidCube(GLdouble a) {
	auxSolidCube(a); 
}