/*************************************************************************************************************************************/ /* */ /* 3 */ /* D E F I N I T I O N D E L ' E S P A C E P H Y S I Q U E D A N S R ( D E B U T ) : */ /* */ /* */ /* Author of '$xrk/attractor.12$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1992??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 3 */ /* D E F I N I T I O N D E L ' E S P A C E P H Y S I Q U E D A N S R ( D E B U T ) : */ /* */ /*************************************************************************************************************************************/ #TestADef hXmin_ESPACE \ PARE(-1.0) #TestADef hYmin_ESPACE \ PARE(-1.0) #TestADef hZmin_ESPACE \ PARE(-1.0) /* Definition du "coin" inferieur-gauche-arriere de l'espace physique. */ /* Ajoute "au cas ou..." le 19990525091333 a cause de 'v $xrv/tri.11$K'. */ #TestADef hXmax_ESPACE \ PARE(1.0) #TestADef hYmax_ESPACE \ PARE(1.0) #TestADef hZmax_ESPACE \ PARE(1.0) /* Definition du "coin" superieur-droite-avant de l'espace physique. */ /* Ajoute "au cas ou..." le 19990525091333 a cause de 'v $xrv/tri.11$K'. */ #TestADef FACTEUR_D_EXTENSION_DE_L_ESPACE_PHYSIQUE \ FU \ /* Facteur d'extension de l'univers. Celui-ci a ete tout particulierement introduit a */ \ /* cause de '$xrr/N_corps.11$K' ; en effet, dans ce dernier l'univers defini initialement */ \ /* etait cinq fois trop petit pour contenir les planetes les plus exterieures. Pour assurer */ \ /* la compatibilite avec les sequences deja generees, il a suffi d'ajouter ce facteur avec */ \ /* comme valeur par defaut, l'unite... */ DEFV(Local,DEFV(Float,INIT(facteur_d_extension_de_l_espace_physique,FACTEUR_D_EXTENSION_DE_L_ESPACE_PHYSIQUE))); /* Facteur d'extension de l'univers. */ #TestADef REDUCTEUR_ANAMORPHIQUE_XYZ_DE_L_ESPACE_PHYSIQUE \ FU DEFV(Local,DEFV(Float,INIT(reducteur_anamorphique_X_de_l_espace_physique,REDUCTEUR_ANAMORPHIQUE_XYZ_DE_L_ESPACE_PHYSIQUE))); DEFV(Local,DEFV(Float,INIT(reducteur_anamorphique_Y_de_l_espace_physique,REDUCTEUR_ANAMORPHIQUE_XYZ_DE_L_ESPACE_PHYSIQUE))); DEFV(Local,DEFV(Float,INIT(reducteur_anamorphique_Z_de_l_espace_physique,REDUCTEUR_ANAMORPHIQUE_XYZ_DE_L_ESPACE_PHYSIQUE))); /* Reducteurs individuels des trois dimensions (introduits le 20090617155200). Cela permet, */ /* par exemple, de faire des anamorphoses ; ainsi un reducteur en 'X' valant 2, permet de */ /* visualiser une sphere (evidemment ecrasee horizontalement...) dans une image 500x1000. */ #define EXTENSION_DE_L_ESPACE_PHYSIQUE(longueur,reducteur_anamorphique) \ MUL3(reducteur_anamorphique,facteur_d_extension_de_l_espace_physique,longueur) \ /* Fonction d'extension de l'univers. */ #define X_HOMOTHETIE(x) \ FORMATAGE_HORIZONTAL_DES_IMAGES(EXTENSION_DE_L_ESPACE_PHYSIQUE(x,reducteur_anamorphique_X_de_l_espace_physique)) #define Y_HOMOTHETIE(y) \ FORMATAGE_VERTICAL_DES_IMAGES(EXTENSION_DE_L_ESPACE_PHYSIQUE(y,reducteur_anamorphique_Y_de_l_espace_physique)) #define Z_HOMOTHETIE(z) \ FORMATAGE_EN_PROFONDEUR_DES_IMAGES(EXTENSION_DE_L_ESPACE_PHYSIQUE(z,reducteur_anamorphique_Z_de_l_espace_physique)) /* Afin de "plier" l'espace au format des images a generer. ATTENTION, le 19991224100516 */ /* la definition : */ /* */ /* #define Z_HOMOTHETIE(z) \ */ /* NEUT(EXTENSION_DE_L_ESPACE_PHYSIQUE(z)) */ /* */ /* a ete changee pour resoudre le probleme decrit dans 'v $xrq/nucleon.L4$I 19991224100516'. */ #TestADef Xmin_ESPACE \ X_HOMOTHETIE(hXmin_ESPACE) #TestADef Ymin_ESPACE \ Y_HOMOTHETIE(hYmin_ESPACE) #TestADef Zmin_ESPACE \ Z_HOMOTHETIE(hZmin_ESPACE) /* Definition du "coin" inferieur-gauche-arriere de l'espace physique. */ #TestADef Xmax_ESPACE \ X_HOMOTHETIE(hXmax_ESPACE) #TestADef Ymax_ESPACE \ Y_HOMOTHETIE(hYmax_ESPACE) #TestADef Zmax_ESPACE \ Z_HOMOTHETIE(hZmax_ESPACE) /* Definition du "coin" superieur-droite-avant de l'espace physique. */ #TestADef Xcentre_ESPACE \ MOYE(hXmin_ESPACE,hXmax_ESPACE) #TestADef Ycentre_ESPACE \ MOYE(hYmin_ESPACE,hYmax_ESPACE) #TestADef Zcentre_ESPACE \ MOYE(hZmin_ESPACE,hZmax_ESPACE) /* Definition de l'origine (ou "centre") de l'espace physique. En fait, elles ne servent */ /* qu'a recentrer l'attracteur lors de la visualisation, et d'autre part, elles doivent */ /* etre des constantes absolues a cause de : */ /* */ /* DEFINITION_D_UNE_POSITION(position_indefinie,Xcentre_ESPACE,...); \ */ /* */ /* dans '$xrq/nucleon.L5$I' (d'ou l'ecriture 'h...'). */ #define hXlongueur_ESPACE \ SOUS(hXmax_ESPACE,hXmin_ESPACE) #define hYlongueur_ESPACE \ SOUS(hYmax_ESPACE,hYmin_ESPACE) #define hZlongueur_ESPACE \ SOUS(hZmax_ESPACE,hZmin_ESPACE) #define mhXYZlongueur_ESPACE \ MIN3(hXlongueur_ESPACE,hYlongueur_ESPACE,hZlongueur_ESPACE) #define MhXYZlongueur_ESPACE \ MAX3(hXlongueur_ESPACE,hYlongueur_ESPACE,hZlongueur_ESPACE) #define hdiagonale_ESPACE \ Rho_3D(hXlongueur_ESPACE,hYlongueur_ESPACE,hZlongueur_ESPACE) /* Definition des dimensions de l'espace avant correction eventuelle par les quatre */ /* operateurs 'EXTENSION_DE_L_ESPACE_PHYSIQUE(...)' et '?_HOMOTHETIE(...)'. Elles sont */ /* donc independantes de differentes autres variables, et peuvent donc etre utilisees */ /* pour initialiser certains objets (tel 'rayon_de_visualisation' par exemple...). */ #define Xlongueur_ESPACE \ SOUS(Xmax_ESPACE,Xmin_ESPACE) #define Ylongueur_ESPACE \ SOUS(Ymax_ESPACE,Ymin_ESPACE) #define Zlongueur_ESPACE \ SOUS(Zmax_ESPACE,Zmin_ESPACE) #define mXYZlongueur_ESPACE \ MIN3(Xlongueur_ESPACE,Ylongueur_ESPACE,Zlongueur_ESPACE) #define MXYZlongueur_ESPACE \ MAX3(Xlongueur_ESPACE,Ylongueur_ESPACE,Zlongueur_ESPACE) #define diagonale_ESPACE \ Rho_3D(Xlongueur_ESPACE,Ylongueur_ESPACE,Zlongueur_ESPACE) /* Definition des dimensions de l'espace apres correction eventuelle par les quatre */ /* operateurs 'EXTENSION_DE_L_ESPACE_PHYSIQUE(...)' et '?_HOMOTHETIE(...)'. */ /* */ /* ATTENTION, jusqu'au 1995101200, c'etait les coordonnees du type 'h?min_ESPACE' et */ /* 'h?max_ESPACE' qui etaient utilisees pour calculer les differentes longueurs ci-dessus. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C E N T R A G E D E S C O O R D O N N E E S : */ /* */ /*************************************************************************************************************************************/ #include xrk/attractor.51.I" /* Introduit sous cette forme le 20061110084827 a cause, en particulier, des '$K' de '$xrq'. */