bbox 532 B

1234567891011121314151617181920
  1. /* computes the bounding box of a graph based on node positions */
  2. BEGIN {
  3. double xmin, ymin, xmax, ymax;
  4. xmin = ymin = 1.7976931348623157e+308;
  5. xmax = ymax = -ymin;
  6. double x, y;
  7. }
  8. N {
  9. if (sscanf ($.pos, "%f,%f", &x, &y) == 2) {
  10. if (x < xmin) xmin = x;
  11. if (y < ymin) ymin = y;
  12. if (x > xmax) xmax = x;
  13. if (y > ymax) ymax = y;
  14. }
  15. }
  16. END {
  17. printf ("(%f,%f) (%f,%f)\n", xmin, ymin, xmax, ymax);
  18. if (ARGC) printf ("area = %f aspect = %f\n", ((xmax-xmin)*(ymax-ymin))/1000000., (xmax-xmin)/(ymax-ymin));
  19. }