#include #include #define A 2.0 #define B 0.7 #define NU 30 #define NV 30 int main (int argc, char *argv[]) { FILE *outfile; double u, v, a, b, du, dv; double x, y, z, ro, ron, nux, nuy; double pi; outfile = fopen ("torus.mesh", "w"); fprintf (outfile, "NuvMESH\n"); pi = 4.0*atan(1.0); du = 2*pi/NU; dv = 2*pi/NV; a = A; b = B; fprintf (outfile, "%d %d\n", NU, NV); for (u = -pi; u <= pi - du/2; u += du) { for (v = -pi; v <= pi - dv/2; v += dv) { z = b*sin(v); ron = b*cos(v); ro = ron + a; x = ro*cos(u); y = ro*sin(u); nux = ron*cos(u); nuy = ron*sin(u); fprintf (outfile, "%lf %lf %lf ", x, y, z); fprintf (outfile, "%lf %lf %lf\n", nux, nuy, z); } } fclose (outfile); return (0); }