/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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 ' U N   P S E U D O - T O R E   " E P Y C Y C L O I D A L "   T R I D I M E N S I O N N E L  :                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrs/epicycloide.21$I' :                                                                                        */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20161230092413).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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 '  :                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition ('v $xrs/epicycloide.21$K') :                                                                                   */
/*                                                                                                                                   */
/*                    Le pseudo-tore "epicycloidal tridimensionnel"                                                                  */
/*                  est defini parametriquement                                                                                      */
/*                  en fonction des deux parametres 'u'                                                                              */
/*                  (appele aussi 'distance polaire' ou                                                                              */
/*                  'theta' ou encore 'latitude') et 'v'                                                                             */
/*                  (appele aussi 'longitude' ou 'phi') :                                                                            */
/*                                                                                                                                   */
/*                                      XEspace(u,v) = B.cos(C.v) - D.cos(E.v)                                                       */
/*                                      YEspace(u,v) = F.sin(G.v) - H.sin(I.v)                                                       */
/*                                      ZEspace(u,v) = M.sin(N.v) - O.sin(P.v)                                                       */
/*                                                                              Courbe "epicycloidale tridimensionnelle".            */
/*                                                                                                                                   */
/*                                      dXEspace(u,v) = d#XEspace(u,v)                                                               */
/*                                      dYEspace(u,v) = d#YEspace(u,v)                                                               */
/*                                      dZEspace(u,v) = d#ZEspace(u,v)                                                               */
/*                                                                                                                                   */
/*                                      Le vecteur {dXEspace(u,v),dYEspace(u,v),dZEspace(u,v)} defini un nouveau                     */
/*                                      referentiel {{X1,X2,X3},{Y1,Y2,Y3},{Z1,Z2,Z3}}                                               */
/*                                                                                                                                   */
/*                                      Xellipse(u,v) = Ra.cos(u)                                                                    */
/*                                      Yellipse(u,v) = Rb.sin(u)                                                                    */
/*                                      Zellipse(u,v) = 0                                                                            */
/*                                                                              Definition d'une ellipse dans le plan {OX,OY}.       */
/*                                                                                                                                   */
/*                                      F (u,v) = [Xellipse(u,v)*X1] + [Yellipse(u,v)*Y1] + [Zellipse(u,v)*Z1] + XEspace(u,v)        */
/*                                       x                                                                                           */
/*                                                                                                                                   */
/*                                      F (u,v) = [Xellipse(u,v)*X2] + [Yellipse(u,v)*Y2] + [Zellipse(u,v)*Z2] + YEspace(u,v)        */
/*                                       y                                                                                           */
/*                                                                                                                                   */
/*                                      F (u,v) = [Xellipse(u,v)*X3] + [Yellipse(u,v)*Y3] + [Zellipse(u,v)*Z3] + ZEspace(u,v)        */
/*                                       z                                                                                           */
/*                                                                              Definition d'une ellipse dont le centre est le point */
/*                                                                              courant {XEspace(u,v),YEspace(u,v),ZEspace(u,v)} et  */
/*                                                                              situee dans {Alpha(u,v),Beta_(u,v),Gamma(u,v)}.      */
/*                                                                                                                                   */
/*                  et (parametres par defaut) :                                                                                     */
/*                                                                                                                                   */
/*                                      A = +8                                                                                       */
/*                                      a = +1                                                                                       */
/*                                      L = +4                                                                                       */
/*                                                                                                                                   */
/*                                      B = F = M = A+a         (=+9.0)                                                              */
/*                                      C = G = N = 1           (=+1.0)                                                              */
/*                                      D = H = O = L.a         (=+4.0)                                                              */
/*                                      E = I = P = (A+a)/a     (=+9.0)                                                              */
/*                                                                                                                                   */
/*                  avec :                                                                                                           */
/*                                                                                                                                   */
/*                                      u E [ 0 , 2.p ]                                                                              */
/*                                                                                                                                   */
/*                                      v E [ 0 , 2.p ]                                                                              */
/*                                                                                                                                   */
/*                  (ou 'p' designe 'pi').                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* 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   d1_XEspace_Courbe(u,v)                                                                                                        \
                    d1_XEspace_xrs_epicycloide_21(u,v)
#define   d1_YEspace_Courbe(u,v)                                                                                                        \
                    d1_YEspace_xrs_epicycloide_21(u,v)
#define   d1_ZEspace_Courbe(u,v)                                                                                                        \
                    d1_ZEspace_xrs_epicycloide_21(u,v)

#include  xrs/epicycloide.21.1.I"
                                        /* Definition de l'equation de l'epicycloide generalisee.                                    */

#include  xrs/referentiel3D.11.I"
                                        /* Definition du referentiel au point {u,v} de l'epicycloide generalisee.                    */

-define   Fx_Epicycloide_2(u,v)                                                                                                         \
-_-_-_-             LIN3(Xellipse(u,v),Composante_X1(u,v)                                                                               \
-_-_-_-                 ,Yellipse(u,v),Composante_Y1(u,v)                                                                               \
-_-_-_-                 ,Zellipse(u,v),Composante_Z1(u,v)                                                                               \
-_-_-_-                 ,XEspace_xrs_epicycloide_21(u,v)                                                                                \
-_-_-_-                  )
                                        /* Definition de la fonction F (u,v).                                                        */
                                        /*                            x                                                              */
-define   Fy_Epicycloide_2(u,v)                                                                                                         \
-_-_-_-             LIN3(Xellipse(u,v),Composante_X2(u,v)                                                                               \
-_-_-_-                 ,Yellipse(u,v),Composante_Y2(u,v)                                                                               \
-_-_-_-                 ,Zellipse(u,v),Composante_Z2(u,v)                                                                               \
-_-_-_-                 ,YEspace_xrs_epicycloide_21(u,v)                                                                                \
-_-_-_-                  )
                                        /* Definition de la fonction F (u,v).                                                        */
                                        /*                            y                                                              */
-define   Fz_Epicycloide_2(u,v)                                                                                                         \
-_-_-_-             LIN3(Xellipse(u,v),Composante_X3(u,v)                                                                               \
-_-_-_-                 ,Yellipse(u,v),Composante_Y3(u,v)                                                                               \
-_-_-_-                 ,Zellipse(u,v),Composante_Z3(u,v)                                                                               \
-_-_-_-                 ,ZEspace_xrs_epicycloide_21(u,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_Epicycloide_2                                                                                                            \
-_-_-_-             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'.                                                                  */



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.