void DumpSvg( int n, char *Time ){ double a, b, r, S[36], K[36], Mu[36]; double x, y, px, py, Min, Max; int i, j, nK, nMu; int tspan_n = 0; int path_n = 0; char Line[512], Filename[1024], FilenameBase[1024]; FILE *fp, *fp_info; CoordInfo *g = Create_CoordInfo(); nK = 36; a = 0.01; b = 10.0; r = pow( b/a, 1.0/((double)(nK-1))); printf("r = %g\n", r); S[0] = a; K[0] = a; // for (j=1; j<nK; j++) S[j] = S[j-1]*r; // for (j=0; j<nK; j++) K[j] = S[nK-1-j]; for (j=1; j<nK; j++) K[j] = K[j-1]*r; nMu = 36; a = 1.0; b = 2000.0; r = pow( b/a, 1.0/((double)(nMu-1))); S[0] = a; for (j=1; j<nMu; j++) S[j] = S[j-1]*r; for (j=0; j<nMu; j++) Mu[j] = S[j]; double E[10], A[18]; E[0] = 0.050000; E[1] = 0.075000; E[2] = 0.10500; E[3] = 0.15000; E[4] = 0.22500; E[5] = 0.31500; E[6] = 0.50000; E[7] = 0.75000; E[8] = 1.1000; E[9] = 1.5000; for (i=0; i<18; i++) A[i] = 5.0+i*5.0; fp = fopen("mike.svg", "w"); fprintf( fp, "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" "<!-- Created with Inkscape (http://www.inkscape.org/) -->\n" "\n" "<svg\n" " xmlns:ns0=\"http://www.iki.fi/pav/software/textext/\"" " xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n" " xmlns:cc=\"http://creativecommons.org/ns#\"\n" " xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n" " xmlns:svg=\"http://www.w3.org/2000/svg\"\n" " xmlns=\"http://www.w3.org/2000/svg\"\n" " xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"" " xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"" " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n" " id=\"svg2\">\n" " width=\"744.09448\"\n" " height=\"1052.3622\"\n" " version=\"1.1\"\n" " inkscape:version=\"0.48.1 r9760\"\n" " sodipodi:docname=\"New document 1\">\n" "\n" " <defs id=\"defs4\" />\n" "\n" " <metadata id=\"metadata7\">\n" " <rdf:RDF>\n" " <cc:Work rdf:about=\"\">\n" " <dc:format>image/svg+xml</dc:format>\n" " <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n" " <dc:title></dc:title>\n" " </cc:Work>\n" " </rdf:RDF>\n" " </metadata>\n" "\n"); // start graphics (layer1) fprintf( fp, " <g id=\"layer1\">\n" ); // Page Background (black filled rectangle) fprintf( fp, " <rect\n" " width=\"744.09448\"\n" " height=\"1052.1366\"\n" " x=\"0\"\n" " y=\"0\"\n" " id=\"Background\"\n" " style=\"fill:#000000;fill-opacity:1;stroke:none\"\n" " />\n" ); /* * Title */ SvgTitle( fp, 32, 744.09448/2.0, 50.0, "Flux to Phase Space Density Conversion", g ); // Plot title sprintf( Line, "LANL-97A: %s", Time ); SvgTitle( fp, 28, 744.09448/2.0, 100.0, Line, g ); // Plot title /******************** * Original FLUX ********************/ strcpy( FilenameBase, "/home/mgh/git/LanlGeoMag/Examples/FluxToPSD/Lgm_FluxToPsd_FLUX_EA" ); sprintf( Filename, "file://%s_%03d.gif", FilenameBase, n ); SvgImage( fp, 90, 200, 200, 200, Filename, g ); SetupCoords( -0.5, 17.5, g->ImageX, g->ImageX+g->ImageWidth, -0.5, 9.5, g->ImageY+g->ImageHeight, g->ImageY, g ); SvgXticks( fp, 0.0, 17.0, 2.0, g ); // X-ticks SvgYticks( fp, 0.0, 9.0, 1.0, g ); // Y-ticks SvgXnumbers( fp, 0.0, 17.0, 2.0, A, "\u03b1, Degrees", g ); // X-Numbers SvgYnumbers( fp, 0.0, 9.0, 1.0, E, "Energy, MeV", g ); // Y-numbers // Color Bar sprintf( Filename, "%s_%03d.info", FilenameBase, n ); fp_info = fopen( Filename, "r" ); fscanf( fp_info, "%*[^:]:%lf", &Min ); fscanf( fp_info, "%*[^:]:%lf", &Max ); fclose( fp_info ); sprintf( Filename, "file://%s_Bar.gif", FilenameBase ); SvgImage( fp, 90+200+10, 200, 10, 200, Filename, g ); SetupCoords( -0.5, 9.5, g->ImageX, g->ImageX+g->ImageWidth, Min, Max, g->ImageY+g->ImageHeight, g->ImageY, g ); SvgBarLabels( fp, Min, Max, "#/cm\u00b2/s/sr/MeV", g ); /******************** * Computed PSD ********************/ strcpy( FilenameBase, "/home/mgh/git/LanlGeoMag/Examples/FluxToPSD/Lgm_FluxToPsd_PSD_MK" ); sprintf( Filename, "file://%s_%03d.gif", FilenameBase, n ); SvgImage( fp, 460, 200, 200, 200, Filename, g ); SetupCoords( -0.5, 35.5, g->ImageX, g->ImageX+g->ImageWidth, -0.5, 35.5, g->ImageY+g->ImageHeight, g->ImageY, g ); SvgXticks( fp, 0.0, 35.0, 5.0, g ); // X-ticks SvgYticks( fp, 0.0, 35.0, 5.0, g ); // Y-ticks SvgXnumbers( fp, 0.0, 35.0, 5.0, K, "K, Re \u221AG", g ); // X-numbers SvgYnumbers( fp, 0.0, 35.0, 5.0, Mu, "\u00B5, MeV/G", g ); // Y-numbers // Color Bar sprintf( Filename, "%s_%03d.info", FilenameBase, n ); if ( (fp_info = fopen( Filename, "r" )) != NULL ) {; fp_info = fopen( Filename, "r" ); fscanf( fp_info, "%*[^:]:%lf", &Min ); fscanf( fp_info, "%*[^:]:%lf", &Max ); fclose( fp_info ); } else { printf("Could not open file: %s\n", Filename); } sprintf( Filename, "file://%s_Bar.gif", FilenameBase ); SvgImage( fp, 460+200+10, 200, 10, 200, Filename, g ); SetupCoords( -0.5, 9.5, g->ImageX, g->ImageX+g->ImageWidth, Min, Max, g->ImageY+g->ImageHeight, g->ImageY, g ); SvgBarLabels( fp, Min, Max, "(c/cm/MeV)\u00b3", g ); /******************** * Re-derived FLUX ********************/ strcpy( FilenameBase, "/home/mgh/git/LanlGeoMag/Examples/FluxToPSD/Lgm_PsdToFlux_FLUX_EA" ); sprintf( Filename, "file://%s_%03d.gif", FilenameBase, n ); SvgImage( fp, 90, 550, 200, 200, Filename, g ); SetupCoords( -0.5, 17.5, g->ImageX, g->ImageX+g->ImageWidth, -0.5, 9.5, g->ImageY+g->ImageHeight, g->ImageY, g ); SvgXticks( fp, 0.0, 17.0, 2.0, g ); // X-ticks SvgYticks( fp, 0.0, 9.0, 1.0, g ); // Y-ticks SvgXnumbers( fp, 0.0, 17.0, 2.0, A, "\u03b1, Degrees", g ); // X-Numbers SvgYnumbers( fp, 0.0, 9.0, 1.0, E, "Energy, MeV", g ); // Y-numbers // Color Bar sprintf( Filename, "%s_%03d.info", FilenameBase, n ); if ( (fp_info = fopen( Filename, "r" )) != NULL ) {; fscanf( fp_info, "%*[^:]:%lf", &Min ); fscanf( fp_info, "%*[^:]:%lf", &Max ); fclose( fp_info ); } else { printf("Could not open file: %s\n", Filename); } sprintf( Filename, "file://%s_Bar.gif", FilenameBase ); SvgImage( fp, 90+200+10, 550, 10, 200, Filename, g ); SetupCoords( -0.5, 9.5, g->ImageX, g->ImageX+g->ImageWidth, Min, Max, g->ImageY+g->ImageHeight, g->ImageY, g ); SvgBarLabels( fp, Min, Max, "#/cm\u00b2/s/sr/MeV", g ); /******************** * Difference FLUX ********************/ strcpy( FilenameBase, "/home/mgh/git/LanlGeoMag/Examples/FluxToPSD/J_DIFF" ); sprintf( Filename, "file://%s_%03d.gif", FilenameBase, n ); SvgImage( fp, 460, 550, 200, 200, Filename, g ); SetupCoords( -0.5, 17.5, g->ImageX, g->ImageX+g->ImageWidth, -0.5, 9.5, g->ImageY+g->ImageHeight, g->ImageY, g ); SvgXticks( fp, 0.0, 17.0, 2.0, g ); // X-ticks SvgYticks( fp, 0.0, 9.0, 1.0, g ); // Y-ticks SvgXnumbers( fp, 0.0, 17.0, 2.0, A, "\u03b1, Degrees", g ); // X-Numbers SvgYnumbers( fp, 0.0, 9.0, 1.0, E, "Energy, MeV", g ); // Y-numbers // Color Bar sprintf( Filename, "%s_%03d.info", FilenameBase, n ); if ( (fp_info = fopen( Filename, "r" )) != NULL ) {; fscanf( fp_info, "%*[^:]:%lf", &Min ); fscanf( fp_info, "%*[^:]:%lf", &Max ); fclose( fp_info ); } else { printf("Could not open file: %s\n", Filename); } sprintf( Filename, "file://%s_Bar.gif", FilenameBase ); SvgImage( fp, 460+200+10, 550, 10, 200, Filename, g ); SetupCoords( -0.5, 9.5, g->ImageX, g->ImageX+g->ImageWidth, Min, Max, g->ImageY+g->ImageHeight, g->ImageY, g ); SvgBarLabels( fp, Min, Max, "#/cm\u00b2/s/sr/MeV", g ); // end graphics (layer 1) fprintf( fp, " </g>\n" ); fprintf( fp, "</svg>\n" ); fclose(fp); }
TerrainTexCoordCalc::TerrainTexCoordCalc(double XMin, double XMax, double YMin, double YMax) { SetupCoords(XMin, XMax, YMin, YMax); } // TerrainTexCoordCalc::TerrainTexCoordCalc