00001
00002
00003
00004
00005
00006
00007
00008 #include <stdio.h>
00009 #ifndef MIN
00010 #define MIN(x, y) ((x) < (y) ? (x) : (y))
00011 #endif
00012 #ifndef MAX
00013 #define MAX(x, y) ((x) > (y) ? (x) : (y))
00014 #endif
00015
00016 int main(void) {
00017 int map[100][100];
00018 int x, y;
00019 int n, i, j, k, l, z, w, r, a;
00020 FILE *fp, *lp;
00021 int junk;
00022 char fn[6];
00023
00024 sprintf(fn, "winddirmap");
00025 lp = fopen(fn, "r");
00026 fp = fopen("winddirmap.ppm", "w");
00027 fprintf(fp, "P3 %d %d 255\n", 100, 100);
00028 for (j = 0; j < 100; j++) {
00029 for (k = 0; k < 100; k++) {
00030 fscanf(lp, "%d ", &map[j][k]);
00031 junk = map[j][k];
00032 fprintf(lp, "%d ", map[j][k]);
00033 switch (junk) {
00034 case 0: fprintf(fp, "255 255 255 "); break;
00035 case 1: fprintf(fp, "0 0 0 "); break;
00036 case 2: fprintf(fp, "0 0 127 "); break;
00037 case 3: fprintf(fp, "0 0 255 "); break;
00038 case 4: fprintf(fp, "127 127 255 "); break;
00039 case 5: fprintf(fp, "127 127 127 "); break;
00040 case 6: fprintf(fp, "127 255 127 "); break;
00041 case 7: fprintf(fp, "0 255 0 "); break;
00042 case 8: fprintf(fp, "0 127 0 "); break;
00043 }
00044 fprintf(fp, "\n");
00045 fscanf(lp, "\n");
00046 }
00047 }
00048 fclose(fp);
00049 fclose(lp);
00050
00051 sprintf(fn, "pressuremap");
00052 lp = fopen(fn, "r");
00053 fp = fopen("pressuremap.ppm", "w");
00054 fprintf(fp, "P3 %d %d 255\n", 100, 100);
00055 for (j = 0; j < 100; j++) {
00056 for (k = 0; k < 100; k++) {
00057 fscanf(lp, "%d ", &map[j][k]);
00058 junk = map[j][k];
00059 fprintf(lp, "%d ", map[j][k]);
00060 if (junk < 1000)
00061 fprintf(fp, "0 0 %d ", 255-(1000-junk)*3);
00062 else
00063 fprintf(fp, "0 %d 0 ", 255+(1000-junk)*3);
00064 fprintf(fp, "\n");
00065 fscanf(lp, "\n");
00066 }
00067 }
00068 fclose(fp);
00069 fclose(lp);
00070
00071 sprintf(fn, "windspeedmap");
00072 lp = fopen(fn, "r");
00073 fp = fopen("windspeedmap.ppm", "w");
00074 fprintf(fp, "P3 %d %d 255\n", 100, 100);
00075 for (j = 0; j < 100; j++) {
00076 for (k = 0; k < 100; k++) {
00077 fscanf(lp, "%d ", &map[j][k]);
00078 junk = map[j][k];
00079 fprintf(lp, "%d ", map[j][k]);
00080 fprintf(fp, "0 %d 0 ", junk*5);
00081 fprintf(fp, "\n");
00082 fscanf(lp, "\n");
00083 }
00084 }
00085 fclose(fp);
00086 fclose(lp);
00087
00088 sprintf(fn, "humidmap");
00089 lp = fopen(fn, "r");
00090 fp = fopen("humidmap.ppm", "w");
00091 fprintf(fp, "P3 %d %d 255\n", 100, 100);
00092 for (j = 0; j < 100; j++) {
00093 for (k = 0; k < 100; k++) {
00094 fscanf(lp, "%d ", &map[j][k]);
00095 junk = map[j][k];
00096 fprintf(lp, "%d ", map[j][k]);
00097 fprintf(fp, "0 0 %d ", 255-(junk*2));
00098 fprintf(fp, "\n");
00099 fscanf(lp, "\n");
00100 }
00101 }
00102 fclose(fp);
00103 fclose(lp);
00104
00105 sprintf(fn, "temperaturemap");
00106 lp = fopen(fn, "r");
00107 fp = fopen("temperaturemap.ppm", "w");
00108 fprintf(fp, "P3 %d %d 255\n", 100, 100);
00109 for (j = 0; j < 100; j++) {
00110 for (k = 0; k < 100; k++) {
00111 fscanf(lp, "%d ", &map[j][k]);
00112 junk = map[j][k];
00113 fprintf(lp, "%d ", map[j][k]);
00114 if (junk < 0)
00115 fprintf(fp, "0 0 %d ", 255+junk*5);
00116 else
00117 fprintf(fp, "0 %d 0 ", junk*5);
00118 fprintf(fp, "\n");
00119 fscanf(lp, "\n");
00120 }
00121 }
00122 fclose(fp);
00123 fclose(lp);
00124
00125 sprintf(fn, "skymap");
00126 lp = fopen(fn, "r");
00127 if (lp == NULL)
00128 exit(0);
00129 fp = fopen("skymap.ppm", "w");
00130 fprintf(fp, "P3 %d %d 255\n", 100, 100);
00131 for (j = 0; j < 100; j++) {
00132 for (k = 0; k < 100; k++) {
00133 fscanf(lp, "%d ", &map[j][k]);
00134 junk = map[j][k];
00135 fprintf(lp, "%d ", map[j][k]);
00136 switch (junk) {
00137 case 0: fprintf(fp, "0 0 255 "); break;
00138 case 1: fprintf(fp, "230 230 230 "); break;
00139 case 2: fprintf(fp, "170 170 170 "); break;
00140 case 3: fprintf(fp, "120 120 120 "); break;
00141 case 4: fprintf(fp, "80 80 80 "); break;
00142 case 5: fprintf(fp, "40 40 40 "); break;
00143 case 6: fprintf(fp, "10 10 10 "); break;
00144 case 7: fprintf(fp, "0 255 0 "); break;
00145 case 8: fprintf(fp, "255 0 0 "); break;
00146 case 13: fprintf(fp, "230 230 255 "); break;
00147 case 14: fprintf(fp, "170 170 255 "); break;
00148 case 15: fprintf(fp, "120 120 255 "); break;
00149 case 16: fprintf(fp, "80 80 255 "); break;
00150 }
00151 fprintf(fp, "\n");
00152 fscanf(lp, "\n");
00153 }
00154 }
00155 fclose(fp);
00156 fclose(lp);
00157 }