Graphics & Media Lab. >> Курсы >> Курс Шикина 2000г.
Для построения сплошного изображения куба достаточно вывести все его лицевые
грани.
void Cube :: drawSolid ()
{
Point p [8];
Point contour [4];
// project vertices
for ( int i = 0; i < 8; i++ )
camera.project ( vertices [i], p [i] );
computeNormals ();
// draw all faces
setcolor ( WHITE );
for ( i = 0; i < 6; i++ )
if ( isFrontFacing ( i, camera ) )
{
for ( int j = 0; j < 4; j++ )
contour [j] = p [facets [i].v [j]];
setfillstyle ( SOLID_FILL, WHITE );
fillpoly ( 4, (int far *) contour );
}
}
Все исходные тексты можно взять здесь.
Graphics & Media Lab. >> Библиотека | Курсы | Графикон