Разработка приложения для построения динамической изображения трехмерной модели объекта "Паровоз"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
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);
}