/*************************************************************************************************************************************/ /* */ /* C A L C U L D E L A D R O I T E P R O P R E M E N T D I T : */ /* */ /* */ /* Nota : */ /* */ /* Les programmes '$K's qui utiliseront */ /* les fichiers '$xrs/droites.*$I' ressemblent */ /* beaucoup a ceux qui referencent '$xrs/surfaces.*$I' */ /* lorsque ces derniers utilisent les options : */ /* */ /* maillage_uv=FAUX droite_uv=VRAI */ /* tracer_une_droite_du_plan_uv_____compatibilite_20170130=... */ /* Aduv=... Bduv=... Cduv=... */ /* */ /* ('v $xiirv/KNOT.11.3.1' par exemple). */ /* */ /* */ /* Author of '$xrs/droites.12$I' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20220514093628). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C A L C U L D E L A D R O I T E V I A L E S C O O R D O N N E E S C U R V I L I G N E S : */ /* */ /*************************************************************************************************************************************/ -define gGENERATION_D_UNE_IMAGE_DE_LA_DROITE(Fx,Fy,Fz,calcul_eventuel_point_courant,sequence_de_generation) \ -_-_-_- Bblock \ -_-_-_- DEFV(Float,INIT(minimum_de_t_effectif,minimum_de_t)); \ -_-_-_- DEFV(Float,INIT(maximum_de_t_effectif,maximum_de_t)); \ -_-_-_- DEFV(Float,INIT(pas_de_t_effectif,pas_de_t)); \ -_-_-_- \ -_-_-_- DEFV(Float,INIT(minimum_de_u_effectif,minimum_de_u)); \ -_-_-_- DEFV(Float,INIT(maximum_de_u_effectif,maximum_de_u)); \ -_-_-_- \ -_-_-_- DEFV(Float,INIT(minimum_de_v_effectif,minimum_de_v)); \ -_-_-_- DEFV(Float,INIT(maximum_de_v_effectif,maximum_de_v)); \ -_-_-_- \ -_-_-_- FDoIn(t,minimum_de_t_effectif,maximum_de_t_effectif,pas_de_t_effectif) \ -_-_-_- Bblock \ -_-_-_- DEFV(Float,INIT(u,FLOT__UNDEF)); \ -_-_-_- DEFV(Float,INIT(v,FLOT__UNDEF)); \ -_-_-_- \ -_-_-_- EGAL(u,t); \ -_-_-_- EGAL(v \ -_-_-_- ,AXPB(NEGA(DIVZ(coefficient_A_d_une_droite_du_plan_uv,coefficient_B_d_une_droite_du_plan_uv)) \ -_-_-_- ,u \ -_-_-_- ,NEGA(DIVZ(coefficient_C_d_une_droite_du_plan_uv,coefficient_B_d_une_droite_du_plan_uv)) \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- /* L'equation de la droite est : */ \ -_-_-_- /* */ \ -_-_-_- /* A.u + B.v + C = 0 */ \ -_-_-_- /* */ \ -_-_-_- /* ce qui peut s'ecrire en coordonnees parametriques (fonction de 't') : */ \ -_-_-_- /* */ \ -_-_-_- /* u(t) = t */ \ -_-_-_- /* */ \ -_-_-_- /* A C */ \ -_-_-_- /* v(t) = - ---.u - --- */ \ -_-_-_- /* B B */ \ -_-_-_- /* en supposant evidemment : */ \ -_-_-_- /* */ \ -_-_-_- /* B # 0 */ \ -_-_-_- /* */ \ -_-_-_- \ -_-_-_- begin_nouveau_block \ -_-_-_- Bblock \ -_-_-_- DEFV(Float,INIT(u_effectif \ -_-_-_- ,COND(IL_NE_FAUT_PAS(transformer_u_v) \ -_-_-_- ,u \ -_-_-_- ,sgFFload_point_coordonnees_01(image_Coordonnee_U \ -_-_-_- ,u_NORMALISEE \ -_-_-_- ,v_NORMALISEE \ -_-_-_- ,transformer_u_v_periodiser_u \ -_-_-_- ,transformer_u_v_periodiser_v \ -_-_-_- ,transformer_u_v_symetriser_u \ -_-_-_- ,transformer_u_v_symetriser_v \ -_-_-_- ,transformer_u_v_prolonger_u \ -_-_-_- ,transformer_u_v_prolonger_v \ -_-_-_- ,transformer_u_v_niveau_hors_image \ -_-_-_- ,image_Coordonnee_U__interpoler \ -_-_-_- ,image_Coordonnee_U__use_interpolation_lineaire \ -_-_-_- ,image_Coordonnee_U__eviter__discontinuites \ -_-_-_- ,image_Coordonnee_U__epsilon_discontinuites \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- DEFV(Float,INIT(u_effectif_translate,FLOT__UNDEF)); \ -_-_-_- DEFV(Float,INIT(d_u_effectif,d_u)); \ -_-_-_- /* Definition de la differentielle de la coordonnee 'u' effective. */ \ -_-_-_- DEFV(Float,INIT(v_effectif \ -_-_-_- ,COND(IL_NE_FAUT_PAS(transformer_u_v) \ -_-_-_- ,v \ -_-_-_- ,sgFFload_point_coordonnees_01(image_Coordonnee_V \ -_-_-_- ,u_NORMALISEE \ -_-_-_- ,v_NORMALISEE \ -_-_-_- ,transformer_u_v_periodiser_u \ -_-_-_- ,transformer_u_v_periodiser_v \ -_-_-_- ,transformer_u_v_symetriser_u \ -_-_-_- ,transformer_u_v_symetriser_v \ -_-_-_- ,transformer_u_v_prolonger_u \ -_-_-_- ,transformer_u_v_prolonger_v \ -_-_-_- ,transformer_u_v_niveau_hors_image \ -_-_-_- ,image_Coordonnee_V__interpoler \ -_-_-_- ,image_Coordonnee_V__use_interpolation_lineaire \ -_-_-_- ,image_Coordonnee_V__eviter__discontinuites \ -_-_-_- ,image_Coordonnee_V__epsilon_discontinuites \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- DEFV(Float,INIT(v_effectif_translate,FLOT__UNDEF)); \ -_-_-_- DEFV(Float,INIT(d_v_effectif,d_v)); \ -_-_-_- /* Definition de la differentielle de la coordonnee 'v' effective. */ \ -_-_-_- \ -_-_-_- EGAL(u_effectif \ -_-_-_- ,COND(IL_NE_FAUT_PAS(gestion_torique_de_u) \ -_-_-_- ,NEUT(u_effectif) \ -_-_-_- ,MODF(u_effectif,minimum_de_u_effectif,maximum_de_u_effectif) \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- EGAL(v_effectif \ -_-_-_- ,COND(IL_NE_FAUT_PAS(gestion_torique_de_v) \ -_-_-_- ,NEUT(v_effectif) \ -_-_-_- ,MODF(v_effectif,minimum_de_v_effectif,maximum_de_v_effectif) \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- /* Gestion "torique" des coordonnees {u,v}... */ \ -_-_-_- \ -_-_-_- EGAL(c_est_le_calcul_de__cx__cy__cz,VRAI); \ -_-_-_- EGAL(cx,Fxyz(Fx(u_effectif,v_effectif))); \ -_-_-_- EGAL(cy,Fxyz(Fy(u_effectif,v_effectif))); \ -_-_-_- EGAL(cz,Fxyz(Fz(u_effectif,v_effectif))); \ -_-_-_- EGAL(c_est_le_calcul_de__cx__cy__cz,FAUX); \ -_-_-_- /* Generation du point courant de la droite... */ \ -_-_-_- \ -_-_-_- BLOC(sequence_de_generation); \ -_-_-_- \ -_-_-_- Eblock \ -_-_-_- end_nouveau_block \ -_-_-_- Eblock \ -_-_-_- EFDoI \ -_-_-_- Eblock /* Calcul et visualisation generale de la surface pour un instant donne. */ -define GENERATION_D_UNE_IMAGE_DE_LA_DROITE_SANS_DIFFERENTIATION(Fx,Fy,Fz,calcul_eventuel_point_courant) \ -_-_-_- Bblock \ -_-_-_- DEFV(Float,INIT(d_u,FLOT__UNDEF)); \ -_-_-_- DEFV(Float,INIT(d_v,FLOT__UNDEF)); \ -_-_-_- /* Ces definitions n'ont comme seule utilite que d'eviter des problemes de compilation */ \ -_-_-_- /* suite a la definition de {d_u_effectif,d_v_effectif}... */ \ -_-_-_- \ -_-_-_- gGENERATION_D_UNE_IMAGE_DE_LA_DROITE \ -_-_-_- (Fx,Fy,Fz \ -_-_-_- ,BLOC(calcul_eventuel_point_courant) \ -_-_-_- ,BLOC(Bblock \ -_-_-_- BLOC(calcul_eventuel_point_courant); \ -_-_-_- /* Calculs eventuels d'informations specifiques au point courant... */ \ -_-_-_- \ -_-_-_- PERMUTATION_EVENTUELLE_DES_COORDONNEES_ET_DES_DIFFERENTIELLES; \ -_-_-_- /* Permutation eventuelle de {cx,cy,cz} et de {dcx,dcy,dcz}. */ \ -_-_-_- \ -_-_-_- LISTER_EVENTUELLEMENT_LES_COORDONNEES_u_v_DES_POINTS; \ -_-_-_- \ -_-_-_- RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES; \ -_-_-_- \ -_-_-_- CALS(memorisation_1_point_06(SOUS(cx,Xcentre_ESPACE) \ -_-_-_- ,SOUS(cy,Ycentre_ESPACE) \ -_-_-_- ,SOUS(cz,Zcentre_ESPACE) \ -_-_-_- ,dcx \ -_-_-_- ,dcy \ -_-_-_- ,dcz \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- /* Memorisation du point courant. */ \ -_-_-_- Eblock \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- Eblock /* Calcul et visualisation de la surface pour un instant donne sans differentiation. */ -define GENERATION_D_UNE_IMAGE_DE_LA_DROITE_AVEC_DIFFERENCES____(Fx,Fy,Fz,calcul_eventuel_point_courant) \ -_-_-_- Bblock \ -_-_-_- gGENERATION_D_UNE_IMAGE_DE_LA_DROITE \ -_-_-_- (Fx,Fy,Fz \ -_-_-_- ,BLOC(calcul_eventuel_point_courant) \ -_-_-_- ,BLOC(Bblock \ -_-_-_- DEFV(Float,INIT(differentielle_x,FLOT__UNDEF)); \ -_-_-_- DEFV(Float,INIT(differentielle_y,FLOT__UNDEF)); \ -_-_-_- DEFV(Float,INIT(differentielle_z,FLOT__UNDEF)); \ -_-_-_- /* Definition des trois differentielles. */ \ -_-_-_- DEFV(Float,INIT(valeur_de_dF_sur_du____12__Fx,CALCUL_DE_dF_SUR_du____12(Fx))); \ -_-_-_- DEFV(Float,INIT(valeur_de_dF_sur_du____12__Fy,CALCUL_DE_dF_SUR_du____12(Fy))); \ -_-_-_- DEFV(Float,INIT(valeur_de_dF_sur_du____12__Fz,CALCUL_DE_dF_SUR_du____12(Fz))); \ -_-_-_- DEFV(Float,INIT(valeur_de_dF_sur____dv_12__Fx,CALCUL_DE_dF_SUR____dv_12(Fx))); \ -_-_-_- DEFV(Float,INIT(valeur_de_dF_sur____dv_12__Fy,CALCUL_DE_dF_SUR____dv_12(Fy))); \ -_-_-_- DEFV(Float,INIT(valeur_de_dF_sur____dv_12__Fz,CALCUL_DE_dF_SUR____dv_12(Fz))); \ -_-_-_- DEFV(Float,INIT(valeur_de_dF_sur_du_dv_12__Fx,CALCUL_DE_dF_SUR_du_dv_12(Fx))); \ -_-_-_- DEFV(Float,INIT(valeur_de_dF_sur_du_dv_12__Fy,CALCUL_DE_dF_SUR_du_dv_12(Fy))); \ -_-_-_- DEFV(Float,INIT(valeur_de_dF_sur_du_dv_12__Fz,CALCUL_DE_dF_SUR_du_dv_12(Fz))); \ -_-_-_- /* Optimisation (destinee historiquement a '$LACT18')... */ \ -_-_-_- \ -_-_-_- EGAL(differentielle_x \ -_-_-_- ,LIZ14(ponderation_de__u_____dans_dx \ -_-_-_- ,COND(IL_FAUT(calcul_des_differentielles_avec_u_v_____compatibilite_2009110217) \ -_-_-_- ,u \ -_-_-_- ,u_effectif_translate \ -_-_-_- ) \ -_-_-_- ,ponderation_de__v_____dans_dx \ -_-_-_- ,COND(IL_FAUT(calcul_des_differentielles_avec_u_v_____compatibilite_2009110217) \ -_-_-_- ,v \ -_-_-_- ,v_effectif_translate \ -_-_-_- ) \ -_-_-_- ,ponderation_de_Fx_____dans_dx,cx \ -_-_-_- ,ponderation_de_Fx_u___dans_dx,valeur_de_dF_sur_du____12__Fx \ -_-_-_- ,ponderation_de_Fx___v_dans_dx,valeur_de_dF_sur____dv_12__Fx \ -_-_-_- ,ponderation_de_Fx_u_v_dans_dx,valeur_de_dF_sur_du_dv_12__Fx \ -_-_-_- ,ponderation_de_Fy_____dans_dx,cy \ -_-_-_- ,ponderation_de_Fy_u___dans_dx,valeur_de_dF_sur_du____12__Fy \ -_-_-_- ,ponderation_de_Fy___v_dans_dx,valeur_de_dF_sur____dv_12__Fy \ -_-_-_- ,ponderation_de_Fy_u_v_dans_dx,valeur_de_dF_sur_du_dv_12__Fy \ -_-_-_- ,ponderation_de_Fz_____dans_dx,cz \ -_-_-_- ,ponderation_de_Fz_u___dans_dx,valeur_de_dF_sur_du____12__Fz \ -_-_-_- ,ponderation_de_Fz___v_dans_dx,valeur_de_dF_sur____dv_12__Fz \ -_-_-_- ,ponderation_de_Fz_u_v_dans_dx,valeur_de_dF_sur_du_dv_12__Fz \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- EGAL(differentielle_y \ -_-_-_- ,LIZ14(ponderation_de__u_____dans_dy \ -_-_-_- ,COND(IL_FAUT(calcul_des_differentielles_avec_u_v_____compatibilite_2009110217) \ -_-_-_- ,u \ -_-_-_- ,u_effectif_translate \ -_-_-_- ) \ -_-_-_- ,ponderation_de__v_____dans_dy \ -_-_-_- ,COND(IL_FAUT(calcul_des_differentielles_avec_u_v_____compatibilite_2009110217) \ -_-_-_- ,v \ -_-_-_- ,v_effectif_translate \ -_-_-_- ) \ -_-_-_- ,ponderation_de_Fx_____dans_dy,cx \ -_-_-_- ,ponderation_de_Fx_u___dans_dy,valeur_de_dF_sur_du____12__Fx \ -_-_-_- ,ponderation_de_Fx___v_dans_dy,valeur_de_dF_sur____dv_12__Fx \ -_-_-_- ,ponderation_de_Fx_u_v_dans_dy,valeur_de_dF_sur_du_dv_12__Fx \ -_-_-_- ,ponderation_de_Fy_____dans_dy,cy \ -_-_-_- ,ponderation_de_Fy_u___dans_dy,valeur_de_dF_sur_du____12__Fy \ -_-_-_- ,ponderation_de_Fy___v_dans_dy,valeur_de_dF_sur____dv_12__Fy \ -_-_-_- ,ponderation_de_Fy_u_v_dans_dy,valeur_de_dF_sur_du_dv_12__Fy \ -_-_-_- ,ponderation_de_Fz_____dans_dy,cz \ -_-_-_- ,ponderation_de_Fz_u___dans_dy,valeur_de_dF_sur_du____12__Fz \ -_-_-_- ,ponderation_de_Fz___v_dans_dy,valeur_de_dF_sur____dv_12__Fz \ -_-_-_- ,ponderation_de_Fz_u_v_dans_dy,valeur_de_dF_sur_du_dv_12__Fz \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- EGAL(differentielle_z \ -_-_-_- ,LIZ14(ponderation_de__u_____dans_dz \ -_-_-_- ,COND(IL_FAUT(calcul_des_differentielles_avec_u_v_____compatibilite_2009110217) \ -_-_-_- ,u \ -_-_-_- ,u_effectif_translate \ -_-_-_- ) \ -_-_-_- ,ponderation_de__v_____dans_dz \ -_-_-_- ,COND(IL_FAUT(calcul_des_differentielles_avec_u_v_____compatibilite_2009110217) \ -_-_-_- ,v \ -_-_-_- ,v_effectif_translate \ -_-_-_- ) \ -_-_-_- ,ponderation_de_Fx_____dans_dz,cx \ -_-_-_- ,ponderation_de_Fx_u___dans_dz,valeur_de_dF_sur_du____12__Fx \ -_-_-_- ,ponderation_de_Fx___v_dans_dz,valeur_de_dF_sur____dv_12__Fx \ -_-_-_- ,ponderation_de_Fx_u_v_dans_dz,valeur_de_dF_sur_du_dv_12__Fx \ -_-_-_- ,ponderation_de_Fy_____dans_dz,cy \ -_-_-_- ,ponderation_de_Fy_u___dans_dz,valeur_de_dF_sur_du____12__Fy \ -_-_-_- ,ponderation_de_Fy___v_dans_dz,valeur_de_dF_sur____dv_12__Fy \ -_-_-_- ,ponderation_de_Fy_u_v_dans_dz,valeur_de_dF_sur_du_dv_12__Fy \ -_-_-_- ,ponderation_de_Fz_____dans_dz,cz \ -_-_-_- ,ponderation_de_Fz_u___dans_dz,valeur_de_dF_sur_du____12__Fz \ -_-_-_- ,ponderation_de_Fz___v_dans_dz,valeur_de_dF_sur____dv_12__Fz \ -_-_-_- ,ponderation_de_Fz_u_v_dans_dz,valeur_de_dF_sur_du_dv_12__Fz \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- /* Calcul des differentielles approchees. */ \ -_-_-_- EGAL(dcx,differentielle_x); \ -_-_-_- EGAL(dcy,differentielle_y); \ -_-_-_- EGAL(dcz,differentielle_z); \ -_-_-_- /* Calcul des couleurs utiles... */ \ -_-_-_- \ -_-_-_- BLOC(calcul_eventuel_point_courant); \ -_-_-_- /* Calculs eventuels d'informations specifiques au point courant... */ \ -_-_-_- \ -_-_-_- RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES; \ -_-_-_- \ -_-_-_- CALS(memorisation_1_point_06(SOUS(cx,Xcentre_ESPACE) \ -_-_-_- ,SOUS(cy,Ycentre_ESPACE) \ -_-_-_- ,SOUS(cz,Zcentre_ESPACE) \ -_-_-_- ,dcx \ -_-_-_- ,dcy \ -_-_-_- ,dcz \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- /* Memorisation du point courant. */ \ -_-_-_- Eblock \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- Eblock /* Calcul et visualisation de la surface pour un instant donne avec calcul de differences */ /* finies (soit une approximation de la differentiation...). */ -define GENERATION_D_UNE_IMAGE_DE_LA_DROITE_AVEC_DIFFERENTIATION(Fx,Fy,Fz,calcul_eventuel_point_courant) \ -_-_-_- Bblock \ -_-_-_- gGENERATION_D_UNE_IMAGE_DE_LA_DROITE \ -_-_-_- (Fx,Fy,Fz \ -_-_-_- ,BLOC(calcul_eventuel_point_courant) \ -_-_-_- ,BLOC(Bblock \ -_-_-_- DEFV(Float,INIT(differentielle_x,FLOT__UNDEF)); \ -_-_-_- DEFV(Float,INIT(differentielle_y,FLOT__UNDEF)); \ -_-_-_- DEFV(Float,INIT(differentielle_z,FLOT__UNDEF)); \ -_-_-_- /* Definition des trois differentielles. */ \ -_-_-_- \ -_-_-_- EGAL(c_est_le_calcul_de__differentielle_x__differentielle_y__differentielle_z,VRAI); \ -_-_-_- EGAL(differentielle_x,dFxyz(d#Fx(u_effectif,v_effectif))); \ -_-_-_- EGAL(differentielle_y,dFxyz(d#Fy(u_effectif,v_effectif))); \ -_-_-_- EGAL(differentielle_z,dFxyz(d#Fz(u_effectif,v_effectif))); \ -_-_-_- EGAL(c_est_le_calcul_de__differentielle_x__differentielle_y__differentielle_z,FAUX); \ -_-_-_- /* Calcul des differentielles exactes... */ \ -_-_-_- EGAL(dcx,differentielle_x); \ -_-_-_- EGAL(dcy,differentielle_y); \ -_-_-_- EGAL(dcz,differentielle_z); \ -_-_-_- /* Calcul des couleurs utiles... */ \ -_-_-_- \ -_-_-_- BLOC(calcul_eventuel_point_courant); \ -_-_-_- /* Calculs eventuels d'informations specifiques au point courant... */ \ -_-_-_- \ -_-_-_- RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES; \ -_-_-_- \ -_-_-_- CALS(memorisation_1_point_06(SOUS(cx,Xcentre_ESPACE) \ -_-_-_- ,SOUS(cy,Ycentre_ESPACE) \ -_-_-_- ,SOUS(cz,Zcentre_ESPACE) \ -_-_-_- ,dcx \ -_-_-_- ,dcy \ -_-_-_- ,dcz \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- /* Memorisation du point courant. */ \ -_-_-_- Eblock \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- Eblock /* Calcul et visualisation de la surface pour un instant donne avec differentiation */ /* formelle. */ -define VISUALISATION_GENERALE_DE_LA_DROITE(calcul_des_parametres,calcul_de_la_surface,Fx,Fy,Fz,Pxyz) \ -_-_-_- Bblock \ -_-_-_- DEFV(Float,INIT(sauvegarde_de_minimum_de_u,minimum_de_u)); \ -_-_-_- DEFV(Float,INIT(sauvegarde_de_maximum_de_u,maximum_de_u)); \ -_-_-_- DEFV(Float,INIT(sauvegarde_de_minimum_de_v,minimum_de_v)); \ -_-_-_- DEFV(Float,INIT(sauvegarde_de_maximum_de_v,maximum_de_v)); \ -_-_-_- \ -_-_-_- BDEFV(imageF,Projection_de_Fx); \ -_-_-_- BDEFV(imageF,Projection_de_Fy); \ -_-_-_- BDEFV(imageF,Projection_de_Fz); \ -_-_-_- /* On notera que pour des raisons de simplicite, il faut definir les trois projections de */ \ -_-_-_- /* la surface meme si 'IL_NE_FAUT_PAS(generer_les_trois_projections_de_la_surface)'... */ \ -_-_-_- \ -_-_-_- Test(IFET(IL_FAUT(visualiser_la_droite_tracee_dans_le_plan_uv) \ -_-_-_- ,IL_NE_FAUT_PAS(generer_les_trois_projections_de_la_surface) \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- Bblock \ -_-_-_- PRINT_ATTENTION("pas de visualisation de la droite du plan {u,v} en l'absence de projection de la surface"); \ -_-_-_- Eblock \ -_-_-_- ATes \ -_-_-_- Bblock \ -_-_-_- Eblock \ -_-_-_- ETes \ -_-_-_- \ -_-_-_- Test(IL_FAUT(transformer_u_v)) \ -_-_-_- Bblock \ -_-_-_- ACCES_AUX_IMAGES_FLOTTANTES(image_Coordonnee_U,nom_transformation_u,transformer_u_v_niveau_hors_image); \ -_-_-_- ACCES_AUX_IMAGES_FLOTTANTES(image_Coordonnee_V,nom_transformation_v,transformer_u_v_niveau_hors_image); \ -_-_-_- /* Chargement eventuel des transformations de {u,v}... */ \ -_-_-_- Eblock \ -_-_-_- ATes \ -_-_-_- Bblock \ -_-_-_- Eblock \ -_-_-_- ETes \ -_-_-_- \ -_-_-_- Test(IL_FAUT(trouer_u_v)) \ -_-_-_- Bblock \ -_-_-_- ACCES_AUX_IMAGES_FLOTTANTES(image_Trous,nom_trouage_u_v,LA_SURFACE_EST_INTEGRE); \ -_-_-_- /* Chargement eventuel du "trouage" de {u,v} tel que par defaut il n'y ait pas de trous... */ \ -_-_-_- Eblock \ -_-_-_- ATes \ -_-_-_- Bblock \ -_-_-_- Eblock \ -_-_-_- ETes \ -_-_-_- \ -_-_-_- RE_INITIALISATION_DE_L_HORLOGE; \ -_-_-_- \ -_-_-_- Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation) \ -_-_-_- Bblock \ -_-_-_- INITIALISATIONS_RELATIVES_A_CHAQUE_NOUVELLE_IMAGE(numero_de_la_periode_courante); \ -_-_-_- /* Initialisations necessaires avant le calcul et la generation de chaque nouvelle image. */ \ -_-_-_- \ -_-_-_- BLOC(calcul_des_parametres); \ -_-_-_- /* Calcul des parametres evoluant au cours de la simulation... */ \ -_-_-_- \ -_-_-_- BLOC(calcul_de_la_surface); \ -_-_-_- /* Calcul de la surface proprement dit... */ \ -_-_-_- \ -_-_-_- Test(IL_FAUT(generer_les_trois_projections_de_la_surface)) \ -_-_-_- Bblock \ -_-_-_- Eblock \ -_-_-_- ATes \ -_-_-_- Bblock \ -_-_-_- GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE(BLOC(VIDE;)); \ -_-_-_- /* Generation de l'image courante... */ \ -_-_-_- Eblock \ -_-_-_- ETes \ -_-_-_- \ -_-_-_- INCREMENTATION_DE_L_HORLOGE(dct); \ -_-_-_- /* Simulation d'un temps arbitraire... */ \ -_-_-_- Eblock \ -_-_-_- EKom \ -_-_-_- \ -_-_-_- EDITION_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES; \ -_-_-_- /* Edition facultative des extrema des coordonnees. */ \ -_-_-_- \ -_-_-_- EDEFV(imageF,Projection_de_Fz); \ -_-_-_- EDEFV(imageF,Projection_de_Fy); \ -_-_-_- EDEFV(imageF,Projection_de_Fx); \ -_-_-_- /* On notera que pour des raisons de simplicite, il faut definir les trois projections de */ \ -_-_-_- /* la surface meme si 'IL_NE_FAUT_PAS(generer_les_trois_projections_de_la_surface)'... */ \ -_-_-_- Eblock /* Calcul et visualisation de la surface avec evolution temporelle... */ -define VISUALISATION_DE_LA_DROITE_SANS_DIFFERENTIATION(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc) \ -_-_-_- Bblock \ -_-_-_- VISUALISATION_GENERALE_DE_LA_DROITE(BLOC(calcul_des_parametres) \ -_-_-_- ,BLOC(Bblock \ -_-_-_- GENERATION_D_UNE_IMAGE_DE_LA_DROITE_SANS_DIFFERENTIATION(Fx,Fy,Fz \ -_-_-_- ,BLOC(calcul_pc) \ -_-_-_- ); \ -_-_-_- Eblock \ -_-_-_- ) \ -_-_-_- ,Fx,Fy,Fz \ -_-_-_- ,Pxyz \ -_-_-_- ); \ -_-_-_- Eblock /* Calcul sans differentiation et visualisation de la surface avec evolution temporelle... */ -define VISUALISATION_DE_LA_DROITE_AVEC_DIFFERENCES____(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc) \ -_-_-_- Bblock \ -_-_-_- VISUALISATION_GENERALE_DE_LA_DROITE(BLOC(calcul_des_parametres) \ -_-_-_- ,BLOC(Bblock \ -_-_-_- GENERATION_D_UNE_IMAGE_DE_LA_DROITE_AVEC_DIFFERENCES____(Fx,Fy,Fz \ -_-_-_- ,BLOC(calcul_pc) \ -_-_-_- ); \ -_-_-_- Eblock \ -_-_-_- ) \ -_-_-_- ,Fx,Fy,Fz \ -_-_-_- ,Pxyz \ -_-_-_- ); \ -_-_-_- Eblock /* Calcul avec evaluation de differences finies (une approximation de la differentiation) */ /* et visualisation de la surface avec evolution temporelle. */ -define VISUALISATION_DE_LA_DROITE_AVEC_DIFFERENTIATION(calcul_des_parametres,Fx,Fy,Fz,Pxyz,calcul_pc) \ -_-_-_- Bblock \ -_-_-_- VISUALISATION_GENERALE_DE_LA_DROITE(BLOC(calcul_des_parametres) \ -_-_-_- ,BLOC(Bblock \ -_-_-_- GENERATION_D_UNE_IMAGE_DE_LA_DROITE_AVEC_DIFFERENTIATION(Fx,Fy,Fz \ -_-_-_- ,BLOC(calcul_pc) \ -_-_-_- ); \ -_-_-_- Eblock \ -_-_-_- ) \ -_-_-_- ,Fx,Fy,Fz \ -_-_-_- ,Pxyz \ -_-_-_- ); \ -_-_-_- Eblock /* Calcul avec differentiation et visualisation de la surface avec evolution temporelle... */