/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S R E L A T I V E S A L A D E R I V A T I O N F O R M E L L E */ /* D E L A N - B O U T E I L L E D E K L E I N D I T E " V E R S I O N 1 " N O N S I M P L I F I E E : */ /* */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * ** * * * * * ** * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * */ /* * * * * ** * * * * * ** */ /* * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* */ /* ATTENTION : */ /* */ /* A la date du 20030308185514, ce */ /* module 'v $xrs/bKlein.31$I' a ete */ /* remplace par 'v $xrs/bKlein.51$I' afin */ /* de supprimer le probleme d'une division */ /* par 0 decrit dans 'v $xrs/bKlein.34$I MINIMUM_DE_U'. */ /* */ /* */ /* Author of '$xrs/bKlein.31$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 20001004111317). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D E S T R O I S F O N C T I O N S ' F ' : */ /* */ /*************************************************************************************************************************************/ /* ATTENTION, il est imperatif que les fonctions derivables formellement soient definies */ /* dans un fichier a part afin qu'elles ne soient pas l'objet d'une double definition. En */ /* effet, on trouve dans 'v $xcc/cpp$Z' : */ /* */ /* $CA $module$w */ /* | $xcp/cpp$X ... -c$PASSE_D -e$PASSE_5 */ /* > $fichierR */ /* */ /* Ainsi, si par exemple la definition de 'Fx(u,v)' etait faite localement dans le */ /* fichier '$xrf/recursif.11$K', cette definition apparaitrait deux fois dans le fichier */ /* '$module$w' : une premiere fois en tete, provenant de '$PASSE_D' ou l'on ne trouve que */ /* les definitions du type '-define ...', puis une deuxieme fois a la suite, la ou se trouve */ /* concatene au fichier '$module$W' des '-define ...' le fichier '$fichierA' a compiler... */ -define F_H_3(u,v) \ -_-_-_- MUL2(DIVI(GRO8(parametre_s) \ -_-_-_- ,ADD2(parametre_s,FU) \ -_-_-_- ) \ -_-_-_- ,SINX(MUL2(DIVI(ADD2(parametre_s,FU),FDEUX) \ -_-_-_- ,u \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- ) /* Fonction H(u,v). */ /* */ /* ATTENTION : on notera que 'H(u,v)' s'annule pour : */ /* */ /* 2.k.p */ /* v = ------- */ /* 5 */ /* */ /* or cette fonction intervient en denominateur de 'Fx(u,v)' et 'Fy(u,v)'. Cela justifie */ /* l'usage de 'DIVZ(...)' qui est fait alors ; cela justifie la valeur donne au minimum */ /* de 'u' ('v $xrs/bKlein.34$I MINIMUM_DE_U')... */ -define F_W_3(u,v) \ -_-_-_- ADD2(COSX(ADD2(MUL2(ADD2(parametre_s,FU) \ -_-_-_- ,u \ -_-_-_- ) \ -_-_-_- ,DIVI(PI,parametre_t) \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- ,RACX(FDEUX) \ -_-_-_- ) /* Fonction W(u,v). */ -define F_DX_3(u,v) \ -_-_-_- LIZ2(NEGA(parametre_s) \ -_-_-_- ,SINX(u) \ -_-_-_- ,NEGA(parametre_s) \ -_-_-_- ,SINX(MUL2(parametre_s,u)) \ -_-_-_- ) /* Fonction DX(u,v). */ -define F_DY_3(u,v) \ -_-_-_- LIZ2(NEUT(parametre_s) \ -_-_-_- ,COSX(u) \ -_-_-_- ,NEGA(parametre_s) \ -_-_-_- ,COSX(MUL2(parametre_s,u)) \ -_-_-_- ) /* Fonction DY(u,v). */ -define Fx_BouteilleDeKlein_3(u,v) \ -_-_-_- ADD3(MUL2(parametre_s,COSX(u)) \ -_-_-_- ,COSX(MUL2(parametre_s,u)) \ -_-_-_- ,NEGA(MUL2(DIVZ(MUL2(F_W_3(u,v),F_DY_3(u,v)),F_H_3(u,v)),COSX(v))) \ -_-_-_- ) /* Definition de la fonction F (u,v). */ /* x */ -define Fy_BouteilleDeKlein_3(u,v) \ -_-_-_- ADD3(MUL2(parametre_s,SINX(u)) \ -_-_-_- ,NEGA(SINX(MUL2(parametre_s,u))) \ -_-_-_- ,MUL2(DIVZ(MUL2(F_W_3(u,v),F_DX_3(u,v)),F_H_3(u,v)),COSX(v)) \ -_-_-_- ) /* Definition de la fonction F (u,v). */ /* y */ -define Fz_BouteilleDeKlein_3(u,v) \ -_-_-_- MUL2(F_W_3(u,v),SINX(v)) /* Definition de la fonction F (u,v). */ /* z */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* I N I T I A L I S A T I O N S R E L A T I V E S A L A P S E U D O - P R O J E C T I O N : */ /* */ /*************************************************************************************************************************************/ -define Pxyz_BouteilleDeKlein_3 \ -_-_-_- Bblock \ -_-_-_- BLOC(VIDE;); \ -_-_-_- Eblock /* Initialisations specifiques a cette surface destinees a permettre la reinjection des */ /* trois pseudo-projections {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz} dans */ /* 'v $xrs/project2D.11$K' (introduit le 20050203092525)... */