#include <phigure.h>
main () {
Pfloat zoom=0.8, circle_radius = 5.0;
Pint ws_id = 1, PostScript_id = 2, view_ind = 1,
scene_id = 10, circle_id = 11, x_axis_id=12, y_axis_id=13;
Tcircle circle;
static Plimit viewport = {0.,1., 0., 1.}, domain = {10., 20., 10., 20. };
static Ppoint circle_center = {15., 15.}, view_center = {0.5, 0.5};
static Ppoint3 axis_orig = {10.0,10.0,0.0};
static Pint struct_ids[3];
static Pint_list struct_id_list = {3, struct_ids};
/* open PHIGURE and an X-Window type workstation (8887) */
topen_phigure (PDEF_ERR_FILE);
topen_ws (ws_id, PDEF_ERR_FILE, 8887);
/* define domain */
tdomain (&domain);
/* build circle */
circle.type = TCENTER_RADIUS;
circle.geometry.cr.r = circle_radius;
circle.geometry.cr.c = circle_center;
tcircle (circle_id, &circle);
/* label attribute on the X axis */
tset_axis_label (x_axis_id, TVISIBILITY_ON, TLABEL_AT_END, TPATH_RIGHT, 0.0, "X-axis");
/* build 2 axes */
txy_linear_axis (x_axis_id, &axis_orig, 20.0, 0.0);
tyx_linear_axis (y_axis_id, &axis_orig, 20.0, 0.0);
/* insert a PHIGS line type attribute in the structure x_axis_id */
tset_linetype (x_axis_id, -1, PLINE_DASH);
/* define scene */
struct_ids[0] = circle_id;
struct_ids[1] = x_axis_id;
struct_ids[2] = y_axis_id;
tscene (scene_id, &struct_id_list, view_ind);
/* define a centered 2D view */
tview2_center (ws_id, view_ind, &view_center, zoom, &viewport);
/* display scene on workstation */
ppost_struct (ws_id, scene_id, 1.0);
predraw_all_structs (ws_id, PFLAG_ALWAYS);
/* close workstation */
tclose_ws (ws_id);
/* generate PostScript file */
topen_ws (PostScript_id,"PostScript_file",80791);
tview2_center (PostScript_id,view_ind,&view_center,zoom,&viewport);
ppost_struct(PostScript_id,scene_id,1.);
predraw_all_structs(PostScript_id,PFLAG_ALWAYS);
tclose_ws (PostScript_id);
/* close PHIGURE */
tclose_phigure ();
}

To generate a PostScript file corresponding to the preceding image, use a PostScript-type workstation (8079x) and apply the following rules :
define a second workstation identifier PostScript_id
open the Post-Script workstation topen_ws (PostScript_id, ...)
define a view on this workstation tview2_center (for example)
post the structures to be displayed ppost_struct (PostScript_id, ...)
plot the posted structures predraw_all_structs (PostScript_id, ...)
close the file tclose_ws (PostScript_id, ...)
In general, if the PostScript file has to correspond exactly to the image obtained on the first workstation ws_id, it suffices to duplicate all the calls with ws_id as the first parameter.