Разработка приложения для построения динамической изображения трехмерной модели объекта "Паровоз"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



37; 1 128

g1Rotatef(t_t*15, 0, 1,0);

//g1Translatef(0.0f,-2.2f,0.0f); // "3D "

g1Color4f(0.5f,0.5f,0.6f,1.0f); //

//g1Translatef(0.0f,2.2f,0.0f); //

g1Rotatef(y_rotate, 0, 1,0);Rotatef(x_rotate, 1, 0,0);Translatef(0.0f,0.0f,-1.0f);

(1.0); // Color3f(0.1f, 0.1f, 0.1f);uSphere(q, 1.0f, 64, 32);Translatef(0.0f,0.0f,0.0f);Color3f(0.0f, 0.35f, 0.0f);uCylinder(q, 1.0f,1.0f, 3.8f, 64, 32);//

Translatef(0.0f,0.0f,3.8f);uCylinder(q, 1.0f,0.0f, 0.0f, 64, 32);//-

Translatef(0.0f,1.25f,-1.0f);

Translatef(0.0f,0.0f,-0.1f); //

g1Materialf(G1_FRONT,G1_SHININESS,0);Color3f(0.55f, 0.55f, 0.55f);(1.5f,1.1f,1.85f);Translatef(0.0f,0.0f,0.1f);

Materialf(G1_FRONT,G1_SHININESS,10);Color3f(0.0f, 0.35f, 0.0f);

auxSolidBox(2.0f,2.5f,2.0f);//

g1Translatef(0.0f,-1.25f,1.0f);

Color3f(0.0f, 0.0, 0.0f);

auxSolidBox(1.4f,0.5f,0.1f);//

g1Color3f(0.0f, 0.0, 0.0f);

auxSolidBox(0.3f,0.15f,0.9f);// 2

Translatef(0.0f,0.0f,0.8f);Translatef(0.0f,0.0f,0.4f);

Translatef(0.0f,0.0f,-0.01f);

Translatef(0.5f,-1.0f,-5.0f);

//

g1Color3f(0.5f, 0.5f, 0.5f);uCylinder(q, 0.2, 0.2f, 3.0f, 64, 32);Translatef(-1.0f,0.0f,0.0f);uCylinder(q, 0.2, 0.2f, 3.0f, 64, 32);

Translatef(-0.30f,0.0f,0.0f);Rotatef(90, 0, 1,0);Translatef(0.0f,0.0f,0.0f);

//

g1Materialf(G1_FRONT,G1_SHININESS,60);Color3f(0.15f, 0.0f, 0.0f);uCylinder(q, 0.0f, 0.4f, 0.0f, 64, 32);Translatef(-1.0f,0.0f,0.0f);

uCylinder(q, 0.0f, 0.4f, 0.0f, 64, 32);Translatef(-1.0f,0.0f,0.0f);

uCylinder(q, 0.0f, 0.4f, 0.0f, 64, 32);Translatef(-1.0f,0.0f,0.0f);

uCylinder(q, 0.0f, 0.4f, 0.0f, 64, 32);Translatef(0.0f,0.0f,1.6f);

uCylinder(q, 0.4f, 0.0f, 0.0f, 64, 32);Translatef(1.0f,0.0f,0.0f);

uCylinder(q, 0.4f, 0.0f, 0.0f, 64, 32);Translatef(1.0f,0.0f,0.0f);

uCylinder(q, 0.4f, 0.0f, 0.0f, 64, 32);Translatef(1.0f,0.0f,0.0f);

uCylinder(q, 0.4f, 0.0f, 0.0f, 64, 32);Translatef(0.0f,0.0f,-1.32f);Rotatef(-90, 0, 1,0);

Translatef(0.5f,3.0f,0.2f);Rotatef(90, 1, 0,0);

//

g1Color3f(0.2f, 0.2f, 0.2f);uCylinder(q, 0.3f, 0.1f, 2.5f, 64, 32);Rotatef(-90, 1, 0,0);

Rotatef(t_t*15, 1, 0,0); //

g1Rotatef(y_rotate, 0, 1,0);Rotatef(x_rotate, 1, 0,0);

PopMatrix();

Finish();(::wg1GetCurrentDC());

}

CLr1View::usr_PreInit()

{

//

x_rotate=0;_rotate=0;_t=0;_n=0.22f;_e=0;_e=0;_e=0.7f;

////////////

float mat_spec[] ={0.2f,0.2f,0.3f}; // pos[3]={-0.8f,0.5f,0.0f}; // dir[3]={0.0f,0.0f,0.0f}; //

Enable (G1_DEPTH_TEST); // ( )

g1Enable (G1_COLOR_MATERIAL); //

g1Materialfv(G1_FRONT,G1_SPECULAR,mat_spec); //

g1Materialf(G1_FRONT,G1_SHININESS,10); //

g1Enable (G1_LIGHTING); //

g1Enable (G1_LIGHT0); // Lightfv(G1_LIGHT0,G1_SPOT_DIRECTION,dir); // Lightfv(G1_LIGHT0,G1_POSITION,pos); //

g1ShadeModel(G1_SMOOTH); //

g1MatrixMode(G1_MODELVIEW); //

= g1uNewQuadric(); //

// -

uQuadricNormals(q, G1_SMOOTH);

SetTimer(1, 50, NULL); //

}

CLr1View::usr_DrawAxis()

{Begin(G1_LINES);

Color3f(1,0,0);Vertex3f(0,0,0);Vertex3f(2,0,0);

Color3f(0,1,0);Vertex3f(0,0,0);Vertex3f(0,2,0);

Color3f(0,0,1);Vertex3f(0,0,0);Vertex3f(0,0,2);End();

}

CLr1View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)

{(nChar)

{

VK_DOWN :x_rotate += 3;break; //

case VK_UP :x_rotate -= 3;break; //

case VK_LEFT :y_rotate += 3;break; //

case VK_RIGHT :y_rotate -= 3;break; //

87 :x_e += 0.1f;break; // W83 :x_e -= 0.1f;break; // S

81 :y_e += 0.1f;break; // Q

case 69 :y_e -= 0.1f;break; // E

65 :z_e += 0.1f;break; // z A

case 68 :z_e -= 0.1f;break; // z D

78 :t_n = -t_n;break; // / N

76 :g1Enable (G1_LIGHTING);break; // L

case 75 :g1Disable (G1_LIGHTING);break; // K

74 :g1Enable(G1_BLEND);g1Disable(G1_DEPTH_TEST); break; // J72 :g1Disable(G1_BLEND);g1Enable(G1_DEPTH_TEST);break; // H

}

//Invalidate();// , ..

CView::OnKeyDown(nChar, nRepCnt, nFlags);

}

CLr1View::OnTimer(UINT nIDEvent)

{

t_t+=t_n; //

Invalidate(); //

CView::OnTimer(nIDEvent);

}