/* include file containing the "define" and types specific to PHIGURE */
#include <phigure.h>
main () {
Pfloat zoom=1.0, circle_radius = 5.0;
Tcircle circle;
static Pint ws_id = 1, scene_id = 10, circle_id = 11, view_ind = 1;
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 Pint_list struct_id_list = {1, &circle_id};
/* 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);
/* define scene */
tscene (scene_id, &struct_id_list, view_ind);
/* define a centered 2D view with distortion in function of the viewport */
tview_config. (ws_id, view_ind, TNON_ISOTROPIC_VIEWPORT, PIND_CLIP);
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 and PHIGURE */
tclose_ws (ws_id);
tclose_phigure ();
}

This program is identical to n° 1 with one additional call to tview_config