This is plptex.c in view mode; [Download] [Up]
/* Prints out "text" at world cooordinate (x,y). The text may be */
/* at any angle "angle" relative to the horizontal. The parameter */
/* "just" adjusts the horizontal justification of the string: */
/* just = 0.0 => left hand edge of string is at (x,y) */
/* just = 1.0 => right hand edge of string is at (x,y) */
/* just = 0.5 => centre of string is at (x,y) etc. */
/* N.B. Centreline of the string passes through (x,y) */
#include "plplot.h"
#include <math.h>
void plptex(x,y,dx,dy,just,text)
double x,y,dx,dy,just;
char *text;
{
int refx, refy;
double shift, cc, ss;
double xform[4],diag;
double xscl, xoff, yscl, yoff;
int level;
glev(&level);
if (level < 3) plexit("Please set up window before calling plptex.");
gwm(&xscl,&xoff,&yscl,&yoff);
cc = xscl * dx;
ss = yscl * dy;
diag = sqrt(cc*cc + ss*ss);
cc = cc/diag;
ss = ss/diag;
gmp(&xscl,&xoff,&yscl,&yoff);
shift = 0.0;
xform[0] = cc;
xform[1] = -ss;
xform[2] = ss;
xform[3] = cc;
if (just != 0.0) shift = plstrl(text) * just;
refx = wcpcx(x) - shift * cc * xscl;
refy = wcpcy(y) - shift * ss * yscl;
plstr(0,xform,refx,refy,text);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.