Mini Shell
/* computes the bounding box of a graph based on node positions */
BEGIN {
double xmin, ymin, xmax, ymax;
xmin = ymin = 1.7976931348623157e+308;
xmax = ymax = -ymin;
double x, y;
}
N {
if (sscanf ($.pos, "%f,%f", &x, &y) == 2) {
if (x < xmin) xmin = x;
if (y < ymin) ymin = y;
if (x > xmax) xmax = x;
if (y > ymax) ymax = y;
}
}
END {
printf ("(%f,%f) (%f,%f)\n", xmin, ymin, xmax, ymax);
if (ARGC) printf ("area = %f aspect = %f\n", ((xmax-xmin)*(ymax-ymin))/1000000., (xmax-xmin)/(ymax-ymin));
}
Zerion Mini Shell 1.0