// 3dgen.cpp // // erzeugt die Initialisierung eines C-arrays int[dimX][dimY][dimZ] mit // Werten der Funktion f(x,y,z), skaliert mit *100. // // g++ -Wall -Wextra 3dgen.cpp -o 3dgen && ./3dgen > 3dvalues.inc #include #include const size_t dimX = 10; const size_t dimY = 15; const size_t dimZ = 12; const double minX = 0.0; const double maxX = 2.0; const double minY = 0.0; const double maxY = 2.0; const double minZ = 0.0; const double maxZ = 4.0; const double scaleF = 100; double f( double x, double y, double z ) { return ( 2.0 + sin(-x)-cos(y) )*sqrt( z ); } int main() { std::printf( " {\n" ); for( int iX=0; iX!=dimX; ++iX ) { double x = minX + ( iX )*( maxX - minX )/( dimX - 1 ); std::printf( " {\n" ); for( int iY=0; iY!=dimY; ++iY ) { double y = minY + ( iY )*( maxY - minY )/( dimY - 1 ); std::printf( " {\n" ); for( int iZ=0; iZ!=dimZ; ++iZ ) { double z = minZ + ( iZ )*( maxZ - minZ )/( dimZ - 1 ); std::printf( " %8d, /* [%2d][%2d][%2d] f( %8.4f, %8.4f, %8.4f )=%8.4f */\n", (int)( scaleF*f( x, y, z ) ), iX, iY, iZ, x, y, z, f( x, y, z ) ); } std::printf( " },\n" ); } std::printf( " },\n" ); } std::printf( " }\n" ); }