data x(drop=pi tau); pi = constant('pi'); do tau = -pi to pi by pi / 100; x = 0.8 * cos(tau); y = 0.8 * sin(tau); output; end; g + 1; do tau = -pi to pi by pi / 2; x = 0.9 * cos(tau); y = 0.9 * sin(tau); output; end; g + 1; do tau = -pi / 4 to 7/4*pi by pi / 2; x = 0.7 * cos(tau); y = 0.7 * sin(tau); output; end; g + 1; do tau = 0 to 2 * pi by 2 * pi / 8; x = 0.15 * cos(tau - pi / 8); y = 0.15 * sin(tau - pi / 8); output; end; g + 1; inc = 2 * pi / 32; do tau = 0 to 2 * pi - 0.5 * inc by inc; xx = cos(tau); yy = sin(tau); x = 0.33 * xx; y = 0.33 * yy; output; x2 = cos(tau + inc); y2 = sin(tau + inc); m = -(x2 - xx) / (y2 - yy); t1 = mean(xx, x2); t2 = mean(yy, y2); xx = (t1 + ifn(t1 gt 0, -1, 1) * sqrt(0.15 / (1 + m * m))); yy = m * (xx - t1) + t2; x = 0.33 * xx; y = 0.33 * yy; output; end; output; run; %let o = offsetmin=0 offsetmax=0; proc sgplot data=x aspect=1 noautolegend; title 'Equated'; refline -.75 to 0.75 by .25 / axis=x; refline -.75 to 0.75 by .25 / axis=y; polygon y=y x=x id=g / group=g lineattrs=(thickness=5); xaxis &o; yaxis &o; run; proc sgplot data=x noautolegend; title 'Not Equated'; refline -.75 to 0.75 by .25 / axis=x; refline -.75 to 0.75 by .25 / axis=y; polygon y=y x=x id=g / group=g lineattrs=(thickness=5); xaxis &o; yaxis &o; run;