/* See drawfigs.h */ /* Last edited on 2017-06-22 18:50:00 by stolfilocal */ #include #include #include #include #include #include #define NORMTERMS 9 Point perp_dir(Point *a, Point *b, float rbig) { Point prp; double ax = (double) a->c[0]; double ay = (double) a->c[1]; double bx = (double) b->c[0]; double by = (double) b->c[1]; double dx = bx - ax; double dy = by - ay; double d = sqrt(dx*dx + dy*dy); double mx = (ax + bx)/2.0; double my = (ay + by)/2.0; prp.c[0] = mx - (dy/d)*rbig; prp.c[1] = my + (dx/d)*rbig; return (prp); } void plot_sites(PSStream *ps, float radius, int n, delaunay_site_t sites[]) { int i; pswr_set_fill_color(ps, 0,0,0); for (i=0; i wy ? wx : wy); double figSize = 6.0 * 72.0; /* Plot size of rectangle {[xmin_xmax]×[ymin_ymax]} (pt). */ double hCanvasSize, vCanvasSize; /* Dimensions of page or eps figure (pt). */ if (eps_format) { double canvasMargin = 4.0; /* EPS plot margin in pt. */ hCanvasSize = 2*canvasMargin + figSize; vCanvasSize = 2*canvasMargin + figSize; } else { hCanvasSize = 8.5 * 72.0; vCanvasSize = 11.0 * 72.0; } double scale = figSize / wm; double hc = hCanvasSize / 2.0; double hmin = hc - scale * wx / 2.0; double hmax = hc + scale * wx / 2.0; double vc = vCanvasSize / 2.0; double vmin = vc - scale * wy / 2.0; double vmax = vc + scale * wy / 2.0; PSStream *ps = pswr_new_stream(name, NULL, eps_format, "", "letter", FALSE, hCanvasSize, vCanvasSize); pswr_new_canvas(ps, ""); pswr_set_window ( ps, xmin, xmax, ymin, ymax, hmin, hmax, vmin, vmax ); if (! eps_format) { pswr_add_caption(ps, name, 0.5); } draw_proc(ps); if (! eps_format) { pswr_frame(ps); } pswr_close_stream(ps); }