Previous Next Up Title Contents General Index Functions Index Bookshelf

1.7.3. TRACÉ D'UN CERCLE AVEC 2 AXES LINÉAIRES

/* inclusion du fichier contenant les "define" et les types propres à PHIGURE */
#include <phigure.h>

main () {

	Pfloat zoom=0.8, circle_radius = 5.0;
	Pint ws_id = 1, 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};

/* 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 d'un cercle */
	circle.type = TCENTER_RADIUS;
	circle.geometry.cr.r = circle_radius;
	circle.geometry.cr.c = circle_center;
	tcircle (circle_id, &circle);

/* 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);

/* définition de la scène */
	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);

/* 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 ();

}

Ce programme est identique au n° 1 avec l'affichage de 2 axes. On peut remarquer que les graduations des axes étant en dehors du domaine, il faut légèrement diminuer le zoom pour les voir apparaitre sur le poste de travail.


Previous Next Up Title Contents General Index Functions Index Bookshelf