/* inclusion du fichier contenant les "define" et les types propres à PHIGURE */
#include <phigure.h>
main () {
Pfloat zoom=1.0;
Pint ws_id = 1, view_ind = 1,
scene_id = 10, cube_id = 11, system_id=12;
static Plimit3 viewport = {0.,1., 0., 1., 0.,1.}, domain = {10., 20., 10., 30., 5.,35.};
static Ppoint3 first_corner={10.,10.,5.},second_corner={20.,30.,35.},
domain_center={15.,20.,20.},view_center={0.5,0.5,0.5};
static Pint struct_ids[2];
static Pint_list struct_id_list = {2, struct_ids};
/* ouverture de PHIGURE et d'un poste de travail de type X-Window (8887) */
topen_phigure (PDEF_ERR_FILE);
topen_ws (ws_id, PDEF_ERR_FILE, 8887);
/* définition du domaine */
tdomain3 (&domain);
/* construction d'un parallélépipède */
tcube (cube_id, &first_corner, &second_corner);
/* construction du système avec un type de ligne pointillé */
tcoordinate_system_axis (system_id,&domain_center,&second_corner,"X","Y","Z", 0.1,0.1);
tset_linetype (system_id, -1, PLINE_DASH);
/* définition de la scène */
struct_ids[0] = cube_id;
struct_ids[1] = system_id;
tscene (scene_id, &struct_id_list, view_ind);
/* définition d'une vue 3D en perspective*/
tview3_perspect_z_vert (ws_id, view_ind, &view_center, 55., 25., 3.0, zoom, &viewport);
/* affichage de la scène sur le poste de travail */
ppost_struct (ws_id, scene_id, 1.0);
predraw_all_structs (ws_id, PFLAG_ALWAYS);
/* fermeture du poste de travail et de PHIGURE */
tclose_ws (ws_id);
tclose_phigure ();
}

Ce programme affiche en 3D un parallélépipède et un repère. La vue est définie en perspective en représentant l'axe des Z vertical. On remarque que le domaine étant défini aux limites du parallélépipède, la transformation de scène transforme ce dernier en un cube.