#include #define PLANETX 32 #define PLANETY 25 #define GRAVITY 1000 int main() { int x, y; printf("flash signed char XGrav[2*PLANETX][2*PLANETY] {\n"); for (x = 0; x < 2*PLANETX; x++) { printf("// X: %d from planet center.\n",x - PLANETX); for (y = 0; y < 2*PLANETY; y++) { int xdist,ydist; double xGrav, yGrav; double theta; xdist = x - PLANETX; ydist = y - PLANETY; long rsquare = xdist * xdist + ydist * ydist; if (xdist == 0) theta = M_PI_2; else theta = atan(ydist / xdist); xGrav = GRAVITY * cos(theta) / rsquare; yGrav = GRAVITY * sin(theta) / rsquare; if (xdist >= 0) { xGrav = -xGrav; } if (ydist >=0) yGrav = -yGrav; printf("%d, ", (int)xGrav); } printf("\n"); } printf("};\n\n"); printf("flash signed char XGrav[2*PLANETX][2*PLANETY] {\n"); for (x = 0; x < 2*PLANETX; x++) { printf("// X: %d from planet center.\n",x - PLANETX); for (y = 0; y < 2*PLANETY; y++) { int xdist,ydist; double xGrav, yGrav; double theta; xdist = x - PLANETX; ydist = y - PLANETY; long rsquare = xdist * xdist + ydist * ydist; if (xdist == 0) theta = M_PI_2; else theta = atan(ydist / xdist); xGrav = GRAVITY * cos(theta) / rsquare; yGrav = GRAVITY * sin(theta) / rsquare; if (xdist >= 0) { xGrav = -xGrav; } if (ydist >=0) yGrav = -yGrav; printf("%d, ", (int)yGrav); } printf("\n"); } printf("};\n\n"); return 0; }