1.8.1. TRACÉ DE 2 AXES ET DE SEGMENTS DE DROITE
/* inclusion du fichier contenant les "define" et les types propres à PHIGURE */
#include <phigure.h>
main () {
Pfloat zoom=0.8;
Pint ws_id = 1, view_ind = 1,
scene_id = 10, segment_id = 11, x_axis_id=12, y_axis_id=13;
Ppoint points[2];
Ppoint_list segment;
static Plimit viewport = {0.,1., 0., 1.}, domain = {10., 20., 10., 20. };
static Ppoint 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};
/* 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 */
tdomain (&domain);
/* construction des 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);
/* construction d'une structure par PHIGS */
popen_struct (segment_id);
segment.num_points = 2;
segment.points = points;
points[0].x = 12.0; points[0].y = 13.0; /* les coordonnées des points sont en rapport */
points[1].x = 14.0; points[1].y = 14.0; /* avec le domaine lié à la scène */
ppolyline(&segment);
points[0].x = 17.0; points[0].y = 18.0;
points[1].x = 18.0; points[1].y = 17.0;
ppolyline(&segment);
pclose_struct ();
/* définition de la scène */
struct_ids[0] = segment_id;
struct_ids[1] = x_axis_id;
struct_ids[2] = y_axis_id;
tscene (scene_id, &struct_id_list, view_ind);
/* définition d'une vue centrée 2D */
tview2_center (ws_id, view_ind, &view_center, 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 ();
}

