* ORBITE PROCEDUR BP208322 16/09/02 21:15:01 9054 *======================================================= * * ORBITE * VISUalisation animée de la trajectoire d'un point dans un plan * definie par une evolution parametrique : y(t) - x(t) * __ _____ _________ * / \___/ \_______/ \___________,° * *======================================================= * * Creation : BP, 2015/11/24 * Modifs : ... * * ************************************************************************ *** RECUP DES EVENTUELLES OPTIONS *** *** + PREPARATION *** ************************************************************************ * nombre d'evolutions * nombre de point de l'evolution 1 * Table d'options * nombre de plot = ndess1 ndess1 = TABOPT . 'N_DESSIN'; SINON; * on choisit de plotter environ 100 images ndess1 = 100; FINSI; SI (ndess1 > nt1); ndess1 = nt1; FINSI; * on plot tous les ndec1 points ndec1 = TABOPT . 'PAS'; * mise a jour de ndess1 : tant pis s'il etait deja defini ! ndess1 = ENTI (nt1 / ndec1); SINON; * ndec1 = 32 ; ndec1 = ENTI 'PROCH' (nt1 / ndess1) ; FINSI; * longueur de la queue de la comete nqueue1 = TABOPT . 'QUEUE'; SI (NEG nqueue1 'INFINIE'); MESS 'Indice QUEUE de la table d options doit etre un entier ou' ' le mot INFINIE'; FINSI; nqueue1 = nt1 + 1; FINSI; MESS 'Indice QUEUE de la table d options doit etre un entier ou' ' le mot INFINIE'; FINSI; SINON; * nqueue1 = 25 * ndec1; nqueue1 = ENTI 'PROCHE' (nt1 / 4); FINSI; SI (nqueue1 < ndec1); nqueue1 = ndec1; FINSI; * on plot a partir du ideb0 ieme point SINON; ideb0 = 0; FINSI; * liste de temps relatifs t/T : prtau = TABOPT . 'TEMPS_CALCULES'; SINON; FINSI; * On regroupe les evolutions elementaires : * - 1 à nbev1 : "queue" des orbites a tracer * - nbev1+1 à 2*nbev1 : "tete" des comètes * - dernière (2*nbev1+1) : evolution fixe (optionnelle) EVOL2 = EVOL1 et EVOL1; EVOL2 = EVOL2 ET TABOPT . 'EVOL_FIXE'; FINSI; * titre et autres options du DESSin FINSI; FINSI; FINSI; FINSI; FINSI; SINON; flcar1 = VRAI; FINSI; FINSI; * table option de DESS * option pour la tete de la comete REPE BCOMETE nbev1; * Tdess1 . (nbev1 + &BCOMETE) = mot 'MARQ S PLEIN ROND'; FIN BCOMETE; ' pas0='ideb0 ' queue=' nqueue1 'pas'; * option pour EVOL_FIXE ************************************************************************ *** BOUCLE SUR LES DESSINS *** ************************************************************************ ifin1 = ideb0; idess1 = 0; REPE BDESS1 ndess1; idess1 = idess1 + 1; * effet comete pour les evolutions 1 a max(1,(nbev1 - 1)) ifin1 = ifin1 + ndec1; si (ifin1 > nt1); quit BDESS1; finsi; ideb1 = ifin1 - nqueue1; si (ideb1 < 1); ideb1=1; finsi; REPE BCOMETE nbev1; * queue de la comete Tdess1 . 'INITIAL' . &BCOMETE = ideb1; Tdess1 . 'FINAL' . &BCOMETE = ifin1; * tete de la comete Tdess1 . 'INITIAL' . (nbev1 + &BCOMETE) = ifin1; Tdess1 . 'FINAL' . (nbev1 + &BCOMETE) = ifin1; FIN BCOMETE; * titre du graphique * plot DESS EVOL2 titx1 'POSX' 'CENT' tity1 'POSY' 'CENT' xbor1 ybor1 car1 'TITR' tit1orb Tdess1 'NCLK'; FIN BDESS1; FINPROC;
© Cast3M 2003 - Tous droits réservés.
Mentions légales