This is example03.c in view mode; [Download] [Up]
/* Illustration of 1-1 scaling for polar plot */ #include <stdio.h> #include <math.h> main() { int i,j; double dtr, theta, dx, dy, r; char text[3]; static FLOAT x0[361], y0[361]; static FLOAT x[361], y[361]; dtr = 3.141592654/180.0; for (i=0; i<=360; i++) { x0[i] = cos(dtr * i); y0[i] = sin(dtr * i); } plstar(1,1); /* Set up viewport and window, but do not draw box */ plenv(-1.3,1.3,-1.3,1.3,1,-2); for (i=1; i<=10; i++) { for (j=0; j<=360; j++) { x[j] = 0.1*i*x0[j]; y[j] = 0.1*i*y0[j]; } /* Draw circles for polar grid */ plline(361,x,y); } plcol(2); for (i=0; i<=11; i++) { theta = 30.0*i; dx = cos(dtr*theta); dy = sin(dtr*theta); /* Draw radial spokes for polar grid */ pljoin(0.0,0.0,dx,dy); sprintf(text,"%d",round(theta)); /* Write labels for angle */ if (dx >= 0) plptex(dx,dy,dx,dy,-0.15,text); else plptex(dx,dy,-dx,-dy,1.15,text); } /* Draw the graph */ for (i=0; i<=360; i++) { r = sin(dtr*(5*i)); x[i] = x0[i] * r; y[i] = y0[i] * r; } plcol(3); plline(361,x,y); plcol(4); plmtex("t",2.0,0.5,0.5,"#frPLPLOT Example 3 - r(#gh)=sin 5#gh"); /* Close the plot at end */ plend(); } int round(d) double d; { return((int)(d+0.5)); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.