Graphics & Media Lab. >> Курсы >> Курс Шикина 2000г.
Заключительный момент - добавление анимации, которая будет
осуществляется путем последовательного преобразования (поворота) куба и
выводом нового изображения с использованием чередования страниц.
void drawFrame ( Cube& cube, int frameNo )
{
cube.applyTransform ( Vector3D ( 0, 0, 0 ), rotateY ( M_PI / 60 ) );
cube.drawShadow ();
cube.drawShaded ();
}
Cube cube;
int drv = VGA;
int mode = VGAMED;
palettetype pal;
cube.applyTransform ( Vector3D ( -0.5, -0.5, -0.5 ), rotateX (M_PI / 6) * rotateZ ( M_PI / 6) );
cube.applyTransform ( Vector3D ( -2, 0, 0 ), Matrix3D ( 1 ) );
initgraph ( &drv, &mode, "" );
getpalette ( &pal );
for ( int i = 0; i < pal.size; i++ )
setrgbpalette ( pal.colors [i], (63*i)/15, (63*i)/15, (63*i)/15 );
drawFrame ( cube, 0 );
setactivepage ( 1 );
for ( int frame = 1;; frame++ )
{
clearviewport ();
drawFrame ( cube, frame );
setactivepage ( frame % 2 );
setvisualpage ( 1 - ( frame % 2 ) );
if ( kbhit () )
break;
}
getch ();
closegraph ();
© Алексей В. Боресков.
Все исходные тексты можно взять здесь.
Graphics & Media Lab. >> Библиотека | Курсы | Графикон